home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-03-14 | 115.4 KB | 2,771 lines |
- 06101020705800
- 1Seite #
- 2
- F0000000
- 9[........................................................]011
- ëInhalt
- Ç
- 1 Einleitung zu command.prg ........................................ 3
-
- 2 Allgemeine Hinweise zur Befehlseingabe ........................... 4
-
- 3 Allgemeine Befehle ............................................... 7
- 3.1 Besondere Befehle ............................................ 27
- 3.2 Zahlkonvertierungen .......................................... 28
-
- 4 Die ALIAS-Einrichtung ............................................ 29
- 4.1 Einführung ................................................... 29
- 4.2 ALIAS-Befehlssatz ............................................ 29
-
- 5 Die History-Einrichtung .......................................... 31
- 5.1 Einführung ................................................... 31
- 5.2 Die !-Befehle ................................................ 33
-
- 6 Das Batch-Processing ............................................. 34
- 6.1 Einführung ................................................... 34
- 6.2 Befehlssatz .................................................. 34
- 6.3 Beispiele .................................................... 41
- 6.3.1 Bsp.1 .................................................... 41
- 6.3.2 Bsp.2 .................................................... 42
- 6.3.3 Bsp.3 .................................................... 43
-
- 7 Variablen ........................................................ 44
- 7.1 Allgemeines zu den Variablen ................................. 46
- 7.2 Beispiel ..................................................... 47
- 7.2.1 Der File cc .............................................. 48
-
- 8 EDI .............................................................. 49
- 8.1 Die Kommandos von EDI ........................................ 49
-
- 9 Fehlermeldungen .................................................. 51
-
- 10 Die Ausgabeumleitung ............................................ 54
-
- 11 Allgemeines Blabla zum Schluß ................................... 55
- 11.1 Lieferumfang ................................................ 55
- 11.2 Zur Programmierung .......................................... 55
-
- 12 ANHANG A (Befehlszusammenfassung) ............................... 58
-
- 13 ANHANG B (oldy-Beispiele) ....................................... 61
- 13.1 Beispiel 1 für die Verwendung des oldy-Befehls .............. 61
- Ç 13.2 oldy, die Zweite ............................................ 62
-
- 14 Index ........................................................... 63
-
- ü
- ë1 Einleitungzucommand.prg
- 9[........................................................]011
- Ç
- êcommand.prgÇisteinKommandointerpreter,deraufherkömmlicheArt(àla
- MS-DOSo.ä.),alsoohneGEModerähnlicheBedienoberflächen,dieArbeit
- mitdemATARIunterstützensoll.ErumfaßtdiedafürüblichenBefehle
- wiez.B.fürdasFilekopieren,dasFilelöschenoderdieFileumbenen⑨
- nung.
- EinigeBefehlewurdenbeiUNIXabgeschaut.EinTeilderHistoryeinrich⑨
- tungfindetinähnlicherFormunterVMSVerwendung.DieBefehlemüssen
- viaTastatureingegebenwerden.EswirdzurBenutzungalsokein
- GebrauchvonderMausgemacht!
- ÜberdiebereitserwähnteHistoryeinrichtungistesmöglich,alte
- Befehlerelativeinfacherneutaufzurufen,ohneeinekompletteNeuein⑨
- gabederZeilevornehmenzumüssen.
- ImFolgendenfindetsicheineZusammenstellungderBefehlemitBe⑨
- schreibung,sowieeineErklärungzudenzusätzlichenFeatureswiez.B.
- dasBatchprocessing.
-
- êEsverstehtsichwohlvonselbst,daßichfürdaskorrekteFunktionie⑨
- rendesProgrammskeineGarantieübernehme.Datenverluste,diedurch
- auftretendeProgrammfehlerodereinefehlerhafteBedienungverursacht
- wordensind,hatjederselbstzuverdauen!
- GefundeneFehleroderProblemebitteichanmichweiterzuleiten(meine
- Adressestehtim'AllgemeinenBlabla'-Abschnitt).
- Ç
-
- ë2 AllgemeineHinweisezurBefehlseingabe
- ü
- ÇDieEingabeeinesBefehlskannmitHilfederCursortasten,derüDELETEÇ-
- Taste,derüESCÇ-TasteundderüBACKSPACEÇ-TasteüÇkorrigiertwerden!
-
- üCONTROL-'<-'Çbzw.üCONTROL-'->'ÇbringendenCursorandenZeilenanfang/
- dasZeilenende.
-
- üSHIFT-'->'Çbzw.üSHIFT-'<-'ÇbringendenCursoreinWortnachrechts/
- links.
-
- üCONTROL-XÇvertauschtdasaktuellemitdemfolgendenZeichen.
-
- üCONTROL-DÇlöschtalleZeichenvomPromptbiszurCursorposition.
-
- üINSERTÇexpandierteinenEingabestring,wenneseinenFileimaktuellen
- Ordnergibt,dermitdiesemStringbeginnt.
-
- ManbefindetsichübrigensdieganzeZeitineinemEinfügemodus,d.h.
- beimKorrigiereneinerZeilewerdenkeineZeichenüberschrieben.
- ÜberflüssigeZeichenmüssenalsoexplizitgelöschtwerden!
-
- DieüESCÇ-TastelöschtdiekompletteZeile.DieanderenTastenhabenihre
- üblicheFunktion.
-
- VieleBefehleerwartenmehrereArgumentangabenoderlassenmehrere
- Argumentezu.DiesemüssenjeweilsdurcheinenBlankabgegrenztsein,
- z.B.würde"dir*.prg*.tos"zuerstallePRG-FilesunddannalleTOS-
- DateiendesaktuellenVerzeichnissesaufzeigen.
-
- DemBenutzerältererVersionendesInterpretersfälltvielleichtauf,
- daßdieAnmerkungnurBefehlseingabeninKleinbuchstabenvorzunehmen,
- nichtmehrvorhandenist.DieseRestriktionhabeichentfernt.Es
- könnenjetztEingabeninGroß-undKleinschreibungerfolgen.
- Manmußallerdingbeachten,daßbeieinerEingabederersteStringin
- Kleinbuchstabenumgewandeltwird,dieArgumentangabenbleibenunverän⑨
- dert.
-
- üACHTUNG!
- ÇIchbininzwischendazuübergegangen,BefehleausdemInterpreterzu
- entfernen.EshandeltsichdabeiausnahmslosumKommandos,diedurch
- andereeinfachnachgebildetwerdenkönnen(z.B.ühideÇ).DerGrundliegt
- einmalinderErsparnisvonSpeicher.DasProgrammbelegtinder
- jetzigenFormmitVariablenundPufferbereichenfast100kBRAM.Essind
- bereitsLeutegekommen,diewegendiesesUmfangsSpeicherprobleme
- bekommenhaben.ZweitenshatdieVielfaltderKommandosnichtbesonders
- ÇzurÜbersichtlichkeitbeigetragen.Eswurdenaberwirklichnurdoppelt
- gemoppelteKommandosentfernt.DieBeschreibungenthältandenrelevan⑨
- tenStellenHinweise,wiemandieseBefehlenachbildenkann!
-
- BeiderfolgendenBefehlsbeschreibungsind'ê[]Ç'-Argumentangabenals
- optionalzuverstehenund'ê<>Ç'alszwingend.SindArgumentez.B.durch
- '(s)'alsPluralgekennzeichnet,bedeutetdies,daßmehrereArgumente
- angegebenwerdenkönnen(nichtêmüssenÇ).
-
- EsgibteineganzeReihevonFehlermeldungen,dieesdemBenutzer
- erleichternsollen,einenFehlerbzw.einaufgetretenesProblemzu
- erkennen.DurchdieVerbindungeinerFehlermeldungmiteinerFehlernum⑨
- mer,istderBenutzervonBatchdateieninderLage,aufbestimmte
- Situationenindividuellzureagieren.
-
- EineweitereFähigkeitdesInterpreterssollauchschonandieser
- StelleErwähnungfinden.MankannvonihmausexterneProgramme
- aufrufen.KanneineingegebenesKommandonichtalsinternerBefehl
- erkanntwerden,wirdversucht,obeseinProgrammgibt,daßdiesem
- Befehlsnamenentspricht.IstdiesderFall,wirdesaufgerufen(das
- beziehtsichaufTOS,TTPundPRG-Dateien).Programme,diesichim
- aktuellenVerzeichnisbefindenunddieaufgerufenwerdensollen,müssen
- nichtmitihremvollenNamenbezeichnetwerden!Eswirddaserste
- Programmgestartet,daßmitdemeingegebenenTeilstringübereinstimmt
- undeinederobigenExtensionshat.
- DieEinschränkungmitdemêaktuellenÇVerzeichnisbestehtabdieser
- Versionnichtmehr,d.h.auchProgrammeausanderenOrdnernund
- LaufwerkenkönnenviaTeilstringaufgerufenwerden!Fürdienotwendige
- EindeutigkeitmußderBenutzerallerdingsselbersorgen.
- Sollz.B.einProgramm'programm.tos'aufgerufenwerden,genügtes
- 'programm'odersogarnochwenigerZeicheneinzugeben,umeszu
- starten.
- Esverstehtsichwohlvonselbst,daßeingegebeneArgumenteandiese
- Programmeweitergegebenwerden.
- DerBenutzerkannmithilfedesüpathÇ-BefehlsbestimmteSuchpfadeange⑨
- ben,diederInterpreteraufderSuchenacheinembestimmtenProgramm
- abklappert.
-
- IndenVorgängerversionendesInterpreterswurdenachdemLaufeines
- '.PRG'-ProgrammsderBildschirmgelöscht.DiesesVerhaltenfanden
- allerdingseinigeLeutenichtsobesonderstoll.AusdiesemGrundwird
- nunkeineLöschungmehrvorgenommen.DerCursorbefindetsichnachdem
- ProgrammlaufinderletztenZeile(dieallerdingsgelöschtwird).Obes
- nununterUmständenzukleinerenUnschönheitenmitdemMauszeiger
- kommt,bleibtabzuwarten.
-
- ÇDieBefehleinderfolgendenBeschreibungsinddurcheinvorangestell⑨
- tes'ü->Ç'undeineeinfacheUnterstreichungkenntlichgemacht.
-
- DaeszahlreicheKommandosgibt,dienurdurcheineAbkürzungrepräsen⑨
- tiertsind(z.B.ücpÇfüräcopyÇ),werdendortdievollständigeAusschrei⑨
- bungderKommandosangegeben.Diesscheintmirfüreineinfacheres
- EinprägenderBefehleförderlichzusein.
-
- DurchhäufigenGebrauchvonBeispielenhabeichversucht,dieBefehle
- undihreFunktiontransparenterzumachen.EinigedieserBeispiele
- enthaltenHinweise,diezueinerbequemerenHandhabungdesInterpreters
- führensollen.Esistdahernichtganzsinnlos,sichmitdiesem
- zusätzlichenGeschwafelauseinanderzusetzen.
-
-
- ë3 AllgemeineBefehle
- Ç
- ♪②ê->?ok
- ÇDiesenBefehlunddenzugehörigenFileêchecksum.datÇgibtesnichtmehr.
- EskonntepraktischjederdieZahlinderangesprochenenDateiändern
- undsoeineWarnungprovozieren,alsohatdasKommandoseinenSinn
- leiderverfehlt.IchmöchteandieserStellenochaufdieinzwischen
- dochrechtzahlreichvorhandenenPD-Programmehinweisen,dieein
- ErkennenvonVirenzulassen.DieVerwendungeinessolchenProgrammssei
- jedemnurwärmstensempfohlen!
-
- ♪②ê->bell
- ÇDieserBefehlläßtdenATARIeinmal'klingeln'.Mankannmitdiesem
- Kommandoz.B.dasEndeeinerBatchfilebearbeitungakustischhervorhe⑨
- ben.
-
- ♪③ê->cat<file(s)>
- Ç(kompletterName:äconcatenateÇ)
- GibtdenInhalteinesASCII-Text-FilesaufdenBildschirmaus.Die
- Ausgabekannjederzeitmitü^ZÇabgebrochenwerden.DerBefehlerlaubt
- es,mehrereDateienanzugeben.
- BeimVersuchz.B.eineProgrammdateiauszugeben,brichtnatürlichdas
- Chaosaus!
- DurchüF1Ç(damitistdieFunktionstastegemeint)kanndieAusgabe
- angehaltenwerden,durcherneutenDruckaufüF1Çwirdsiewieder
- fortgesetzt.
- MankanndiesesKommandoübrigensauchaufandereVerzeichnisseund
- Laufwerkeanwenden!
- ♪⑤BEISPIEL:
-
- cat*.c
-
- Hierwerdenalle'C'-Dateienausgegeben.
-
- ♪③catcommand.txttest.txt*.dat
-
- EswirderstderFile'command.txt'ausgegeben,danndieDatei
- 'test.txt'undzumSchlußalle'dat'-Files.
-
- ♪③cat/test/*.dat
-
- Ausgabealler'dat'-Files,diesichimOrdner'test'befinden.
-
- ♪③ê->cd<directory>
- Ç(kompletterName:ächangedirectoryÇ)
- DiesesKommandowirdzumWechselnvonVerzeichnissenbenutzt.
- ÇSollzueinemOrdnergewechseltwerden,dersichimaktuellenDirectory
- befindet,genügtes,dieerstenBuchstaben(bisEindeutigkeitherge⑨
- stelltist),einzugeben.
- EswirdimmerdasêersteÇVerzeichnisangesprungen,daßmitdiesem
- Teilstringübereinstimmt.
- Esistabundzuschonvorgekommen,daßbeimWechselnvonLaufwerken,
- zwarsogetanwird,alshätteeinsolcherstattgefunden,mansichaber
- inWirklichkeitimmernochandergleichenStellebefindet.Hier
- scheinteseinProblemimTOSzugeben(GEMDOS-RoutineüDsetdrvÇ).Dieses
- VerhaltenhabeichallerdingsbishernurbeiFloppylaufwerkenbeobach⑨
- tenkönnen.RamdisksoderverschiedenePartitionseinerHarddisk
- bereitenkeineProbleme.IchmöchtemitdiesemHinweisallerdingsnicht
- sagen,daßjetztdauerndmitdieserêNichtwechseleiÇzurechnenist,also
- keinePanik!
- ♪⑤BEISPIEL:
-
- cdsubdir
-
- WechseltvomaktuellenVerzeichnisindasUnterverzeichnis'subdir'.
-
- ♪③cda:bingo
-
- WechseltdasLaufwerk,vomaktuellenLaufwerkaufLaufwerkA,undgeht
- dortindenOrdner'bingo'.
-
- ♪③cd..
-
- VomaktuellenUnterverzeichniswirdindasVerzeichnisgegangen,daß
- sicheineEbeneüberdemUnterverzeichnisbefindet.Verhältsichalso
- analogzueinemAnklickenderoberenlinkenFenstereckeunterGEM.
-
- ♪③cd/(odercd\)
-
- WechseltindasWurzelverzeichnisdesaktuellenLaufwerks.
-
- ♪③cdd:
-
- WechseltnurdasLaufwerk.DieEingabevon'd:'bewirktübrigensdas
- gleiche(s.u.).
- ê
- ♪③->chmod<file><mode>...<file><mode>
- Ç(kompletterName:ächangemodeÇ)
- DieserBefehlkannzurÄnderungvonFileattributenbenutztwerden.Bei
- denFileangabenkannmit'*'gearbeitetwerden.'mode'repräsentiert
- eineIntegerzahl,diedasneueAttributdarstellt.
- MansolltebeiVerwendungdiesesBefehlsetwasVorsichtwaltenlassen.
- ÇIchhabez.B.malauseinemnormalenêauto.comÇ-FileeinVolumelabel
- gemacht.LeiderhatdieRückführungineinenormaleDateinichtmehr
- funktioniert.DasBetriebssystemisthierleiderziemlichrestriktiv
- ausgelegt!
- Esistmirbisjetztauchnochnichtgelungen,Verzeichnissenz.B.das
- êreadonlyÇ-Attributzuvergeben(wasjaalsSchutzfunktionrecht
- nützlichwäre).IrgendwiehatmanaufsolcheEinträgekeinenZugriff
- viaüFattrib()Ç.
- AndieserStelleisteineZusammenstellungderBitsundihrerBedeutung
- wohlganzhilfreich:
- Bit0:Dateiistschreibgeschützt
- Bit1:Dateiistversteckt(wenigstenseinbißchen)
- Bit2:eshandeltsichumeineSystemdatei(habebisjetztnoch
- keinegefunden)
- Bit3:Volumelabel(kannmanz.B.beimFormatierenangeben)
- Bit4:Verzeichnis
- Bit5:istdasArchivbit(KennungüwcÇ)
- UmdieentsprechendeEigenschaftzubesitzenmußdasjeweiligeBit
- gesetztsein!
- ♪⑤BEISPIEL:
-
- chmod*.prg1
-
- AllenPRG-DateienimaktuellenOrdnerwirddasênurlesenÇ-Attribut
- verliehen.
-
- ♪③chmod*.prg1*.txt0
-
- PRG-FileswerdenmitdemênurlesenÇ-Attribut,TXT-Dateienerhaltendas
- normaleSchreiben/Lesen-Attribut.
-
- ♪③ê->cls
- Ç(kompletterName:äclearscreenÇ)
- EswirdmitdiesemBefehlnurderBildschirmgelöscht.
-
- ♪③ê->cmp<fileA><fileB>
- Ç(kompetterName:äcompareÇ)
- VergleichtdenInhaltzweierFilesmiteinander.Istdiesergleich,wird
- nichtszurückgemeldet,ansonsteneinêfilesdifferÇ.
- EsistbeidiesemBefehlmöglich,sichaufandereLaufwerkeundandere
- Ordnerzubeziehen.
- Wemesabundzuschonpassiertist,daßeinscheinbarkorrekt
- abgelaufenerKopiervorgangdochnichtsorechtfunktionierte,wird
- diesenBefehlzuschätzenwissen.
- ♪√ÇBEISPIEL:
-
- cmpc:command.txta:command.txt
-
- VergleichderbeidenDateien,diesichaufunterschiedlichenLaufwerken
- befinden.
-
- ♪③cmpcommand.txtcommand.txt
-
- DieserBefehlwirdnichtausgeführt,dadavonauszugehenist,daßes
- sichumeinunddenselbenFilehandelt.
-
- ♪②ê->compress<file(s)>
- ÇDiesesKommandokomprimiertDateien.DieAusgabefilesbesitzendie
- Extension'CPR'.
- DieursprünglichenFileswerdenmitüexpandÇwiedererzeugt.
- DasErgebnisderKompaktierungistallesinallemnichtbesonders
- berauschend,abereinbißchenschautschondabeiheraus.
- SolltejemandaufeinewirklicheffektivarbeitendeKompaktierung
- angewiesensein,somöchteichdiesenaufProgrammewieäARCÇoderäZOOÇ
- verweisen.
- ÄltereVersionendesKommandointerpreterskonntennurreineASCII-
- Textdateienpacken.DieseEinschränkunggiltnichtmehr.DieserVorteil
- hatallerdingseinenkleinenHaken,redundanteTextewiez.B.Leerzei⑨
- len,dienurBlanksenthaltenoderZeilen,diemitBlanksaufhören,
- werdennichtmehrentfernt!NachderErweiterungmitüexpandÇhatman
- alsowiederdenursprünglichenFilevorsich.
- DasVerfahren,dashinterdiesemKommandostehtistübrigensganz
- einfach:eswerdenalleStrings,dieausmehralszweigleichenZeichen
- bestehen,zudreiByte-Stringszusammengefaßt.
- BesondersguteOpferfürdiesenBefehlsindmitdemEditorTEMPUS
- erstellteDateien.DadieserleidernichtinderLageist,vernünftig
- mitTAB-Zeichenumzugehen(undstattdessendasidiotischeATARI-
- spezifischeZeichenbzw.dieeingestellteAnzahlvonBLANKsmacht),
- bringthierdieKomprimierungschoneinigeBytesanErsparniss.Sollte
- irgendwanneinmaleineVersiondieses,ansonstenwirklichguten,
- Editorsherauskommen,dieeinebrauchbareEinbindungundVerarbeitung
- vonTABbeinhaltet,bringtdieKomprimierungnatürlichauchnichtmehr
- dieseErgebnisse.
- ♪⑤BEISPIEL:
-
- compressbeispiel.txt
-
- KompaktiertdieDatei'beispiel.txt'.DererzeugteFileheißt
- 'beispiel.cpr'.'beispiel.txt'selbstwirdênichtÇverändert!
-
- ♪²ê->cp<fileA><fileB>
- Ç(kompletterName:äcopyÇ)
- DieserBefehlwirdzumKopierenvonDateienbenutzt.'fileA'wirddabei
- in'fileB'kopiert.
- DerBefehlistsoausgelegt,daßinweitemUmfangaufandereLaufwerke
- undVerzeichnissezugegriffenwerdenkann.DieVerwendungvon'*'
- bieteteinzusätzlichesMaßanFlexibilität.
- WährenddemKopiervorgangwirdangezeigt,welcheFilesgeradedupli⑨
- ziertwerden.
- SicherheitshalbersolltebeimKopiereninoderausVerzeichnissender
- vollständigePfadangegebenwerden!
- WirdnureinArgumentangegeben,soersetztdasProgrammdaszweite
- durch'*.*'.
- ♪⑤BEISPIEL:
-
- cpc:command.txtd:\subdir\*.*
-
- IndiesemBeispielwirdderFile'command.txt'vomHauptdirectoryauf
- LaufwerkCindasSubdirectory'subdir'aufLaufwerkDkopiert.
- Eskannübrigensstatt'\'auch'/'verwendetwerden.
-
- ♪③cp*.prga:
-
- KopiertallePRG-DateiendesaktuellenVerzeichnissesaufLaufwerkA.
-
- ♪③cp*.*d:/allefiles/*.*
-
- HierwerdenalleFilesdesaktuellenOrdnersindasDirectory
- 'allefiles'aufLaufwerkDkopiert.
-
- ♪③cpc:xyz.dat
-
- DerFile'xyz.dat'wirdvomLaufwerkCindasVerzeichniskopiert,in
- demmansichgeradebefindet.DerNamederneuenDateiistdabeiauch
- wieder'xyz.dat'.
-
- ♪③ê->crsoff
- Ç(kompletterName:äcursoroffÇ)
- SchaltetdenCursoraus.
-
- ♪③ê->crson
- Ç(kompletterName:äcursoronÇ)
- SchaltetdenCursorein.
-
- ♪②ê->crypt<keyA><keyB><fileA><fileB>
- ÇMöchtemaneinenFilever-bzw.entschlüsseln,sokanndazudieser
- ÇBefehlbenutztwerden.UmdiesenKodierungsvorgangzustarten,istes
- notwendig,zweiZahlen('keyA'und'keyB')einzugeben.Nurmitdiesen
- beidenZahlenkanneinverschlüsselterFilewiederdekodiertwerden!
- 'fileA'stelltdenzuver-/entschlüsselndenFiledar,'fileB'reprä⑨
- sentiertdieErgebnisdatei.
- üACHTUNGÇ,imLaufederZeit(oderbesser:derInterpreterversionen)sind
- andiesemProgrammteilimmerwiederÄnderungenvorgenommenworden!Es
- istdaherfürBenutzerdiesesBefehlsnotwendig,festzustellenobein
- EntschlüsselnvonDateien,diemiteinerälterenVersionverschlüsselt
- wordensind,nochmöglichist.Kanndiesnichtmehrdurchgeführt
- werden,mußmandenfraglichenFileerstmitderälterenVersionwieder
- inseinenUrzustandbringen!
- WiesicherdieKodierungist,magjederselbstentscheiden.Diebeiden
- SchlüsselsindvomTyp'long',damitergebensichschoneinigeKodie⑨
- rungsmöglichkeiten.EskönnenübrigensauchgnegativeSchlüsselbenutzt
- werden.
- ♪⑤BEISPIEL:
-
- crypt1234711command.txtcommand.crp
-
- DieDatei'command.txt'wirdinverschlüsselterFormimFile
- 'command.crp'abgelegt.Sollaus'command.crp'wiederderentschlüs⑨
- selteFileentstehen,mußeinfach
-
- ♪③crypt1234711command.crpcommand.ent
-
- eingegebenwerden.'command.ent'repräsentiertnundenentschlüsselten
- File.EshättenatürlichauchirgendeinandererDateinamegewählt
- werdenkönnen.
- DerUrfile(indiesemFall'command.txt')wirdübrigenswedergelöscht
- nochsonstirgendwieverändert!
-
- ♪②ê->date[dd.mm.yy]
- ÇAusgabe/SetzendesDatums.
- WirdkeinArgumentangegeben,wirdeinfachdasSystemdatumausgegeben,
- sonsterfolgteineÜbernahmedesArguments.
- ♪⑤BEISPIEL:
-
- date1.5.88
-
- SetztdasSystemdatumaufden1.Mai1988.
-
- ♪③date
-
- HierwirdnurdasSystemdatumausgegeben.
-
- ♪²ê->defkey<f-key><string>
- Ç(kompletterName:ädefinekeyÇ)
- BelegungderFunktionstastenmiteinemBefehl,derbeiDrückendieser
- Tastenausgeführtwird.
- 'f-key'umfaßtdenBereichvon1bis20(naja,esgibthaltnur
- zwanzigFunktionstasten),wobeiabNummer11dieêgeshiftetenÇTasten
- gemeintsind,alsowirdz.B.Taste14duchüSHIFT-F4Çrepräsentiert.
- ♪⑤BEISPIEL:
-
- defkey1dir*.prg
-
- JederDruckaufüF1ÇführtjetztzumAufzeigenallerPRG-Dateienim
- aktuellenVerzeichnis.
- DieHauptanwendungfürdieseFunktiondürfteallerdingsimAufrufenvon
- externenProgrammenmitbestimmtenParameternliegen:
-
- ♪③defkey12x.prg
-
- üF12Ç(üSHIFT-F2Ç)führtnunzumStartendesProgramms'x.prg'.
- ê
- ♪②->device
- ÇAusgabederangemeldetenLaufwerke.
-
- ♪③ê->df
- Ç(kompletterName:ädiskfreeÇ)
- DiesesKommandozeigtdenfreienSpeicherplatzdesaktuellenLaufwerks
- an.
-
- ♪③ê->dir[filedeskriptor(en)]
- Ç(kompletterName:ädirectoryÇ)
- Aufzeigenaller(bestimmter)DateieneinesOrdners.Eskönnenauch
- Laufwerksbezeichnungenbzw.Ordnerangegebenwerden.
- WirdkeinDeskriptorangegeben,werdenalleFilesausgegeben.Bei
- AngabemehrererDeskriptoren,werdensukzessivealleentsprechenden
- Dateienaufgezeigt.
- ZusätzlichzudenFilenameerfolgteineAusgabevonErstellungsdatum,
- GrößeundFileattribut.
- DieAttributewerdensowohlinabgekürzterForm,alsauchalsInteger⑨
- wert(inKlammern)ausgegeben.DieAttributabkürzungenundihreBedeu⑨
- tung:
-
- -ürwÇ=üRÇeadandüWÇrite
- -üroÇ=üRÇeadüOÇnly
- -ühiÇ=üHIÇdden
- -üsfÇ=üSÇystemüFÇile
- -üvlÇ=üVÇolumeüLÇabel
- Ç -üdiÇ=üDIÇrectory
- -üwcÇ=üWÇrittenandüCÇlosed
-
- NatürlichkanneinFilemehrereAttributehaben(z.B.üwcÇundühiÇ).Es
- werdendannalleaufgeführt.
- ♪⑤BEISPIEL:
-
- dir
-
- AusgabeallerDateiendesaktuellenVerzeichnisses.
-
- ♪③dira:
-
- AusgabeallerFilesvomaktuellenOrdneraufLaufwerkA.
-
- ♪③dir*.prga*.*
-
- AusgabeallerPRG-FilesunddanachallerDateien,diemit'a'beginnen.
-
- ♪③dir/megamax/
-
- AusgabeallerDateienimVerzeichnis'megamax'.
-
- ♪②ê->echo[string]
- ÇAusgabevon'string'aufdenBildschirm.WirdkeinStringangegeben,
- erfolgtnurdieAusgabeeinerLeerzeile.
- SinnvollistdiesesKommandoinBatchfiles.
- ♪⑤BEISPIEL:
-
- echoNaprima!
-
- Eswird'Naprima!'ausgegeben.
-
- ♪②ê->exit
- ÇVerlassendesInterpretersundzurückzumDesktop.Dasgleichekannman
- auchdurchDrückenvonü^CÇerreichen.
-
- ♪②ê->expand<file(s)>
- ÇDieserBefehlstelltdieUmkehrungzuücompressÇdar.Erdientder
- WiederherstellungvonmitücompressÇbehandelterDateien.DerErgebnis⑨
- filehatdieExtension'EXP'.
-
- ♪②ê->find<file>
- ÇEswirdimkomplettenFilesystem(alsoauchindenUnterverzeichnissen)
- nach'file'gesucht.WirdeinepassendeDateigefunden,wirddiesemit
- vorangestelltemPfadnamenausgegeben.
- ♪√ÇBEISPIEL:
-
- find*.*
-
- DiesesKommandowürdealleFileseinesLaufwerksmitdenzugehörigen
- Verzeichnisnamenausgeben.
-
- ♪③find*.prg
-
- DieserBefehlgibtallePRG-Filesaus,diesichaufdemaktuellen
- Laufwerkbefinden.
-
- ♪②ê->flags
- ÇAusgabediverserProgrammflags.DieseFlagswerdenspäter,bzw.immer
- beidenBefehlenfürdiesierelevantsind,nocheingehenderbespro⑨
- chen.
- ♪ZuordnungderKommandos:
-
- "Errorbreak" Befehl:üerrorbreak
- Ç "History" Befehl:üsrhist
- Ç "ß=Beta" Befehl:üsz
- Ç "Patchchange" Befehl:üpchange
- Ç "Showbatchcommands" Befehl:ütextÇ/ünotext
- Ç "Savehistory" Befehl:üsavehist
- Ç "Printtitle" Befehl:üsrtitle
- Ç "ExpandTAB" Befehl:üsrtab
- Ç "Convertslash" Befehl:üslash
- Ç "Linenumbers" Befehl:ünumbers
- Ç
- BeidiesenFlagswirddurchäonÇ/äoffÇangezeigt,obdieFunktiondes
- entsprechendenBefehlsaktiviertistodernicht.
-
- ♪⑧DiefolgendeAuflistungzeigtdieVerbindungvonKommandos,dieSetUp
- FunktionhabenundihreRepresentationinderFlag-Liste:
-
- "TAB" Befehl:üsettab
- Ç "Linesperpage" Befehl:ülppage
- Ç "Margin" Befehl:ülpmargin
- Ç "Startpage" Befehl:üpage
- Ç "start:" Befehl:üsetlp
- Ç "stop:" Befehl:üresetlp
- Ç
- ♪②ê->free
- ÇGibtdennochverfügbarenRAM-Speicherplatzaus.
-
- ♪³ê->head<file(s))
- ÇDieserBefehlgibtdieerstenzehnZeilender/desangegebenenASCII-
- Filesaus.DamitkannmansichaufrechteinfacheWeiseeinenÜberblick
- überbestimmteFileinhalteverschaffen.
- ♪⑤BEISPIEL:
-
- head*.c
-
- AusgabedererstenzehnZeilenaller'c'-Dateiendiesichimaktuellen
- Ordnerbefinden.
-
- ♪③heade:/subdir/datei.txt
-
- AusgabedererstenzehnZeilenvonDatei'datei.txt',diesichim
- Ordner'subdir'aufLaufwerkEbefindet.
-
- ♪②ê->help[command(s)]
- ÇWirddieserBefehlohneArgument(e)eingegebeodereinfachdieüHELPÇ-
- Tastegedrückt,erfolgteineAuflistungallerverfügbarenKommandos.
- DieseAuflistungist(leider)nichtalphabetischgeordnet,sondern
- entsprichtderReihenfolgeinderneueBefehledemProgrammhinzugefügt
- wordensind.DasistzwarnichtbesondersschönaberzumVerschaffen
- eineskurzenÜberblicksdürfteeswohlgenügenunddieprogrammtech⑨
- nischenÄnderungenzumAusgebeneinergeordnetenListe,stehtwohlin
- keinemsinnvollenVerhältniszumNutzen.
- WirdallerdingseinArgument(odermehrere)angegeben,soerfolgtdie
- AusgabeeinerKurzbeschreibung.
- DieseBeschreibungenbefindensichinderDateiêcommand.hlpÇ,diesich
- immerindemVerzeichnisbefindenmuß,vondemausderKommandoin⑨
- terpreteraufgerufenwurde.
- ♪⑤BEISPIEL:
-
- helpdirrm
-
- EswerdendieKurzbeschreibungenzudenKommandosüdirÇundürmÇausgege⑨
- ben.
-
- ♪②ê->hide<file>
- ÇWollttemaneinenFilesokennzeichnen,daßeraufdemDesktopnicht
- mehrerschien,konntediesinälterenInterpreterversionenmitdiesem
- Befehlbewerkstelligtwerden.DiesesKommandogibtesünichtÇmehr!
- MöchtejemandtrotzdemDateienverstecken,kannerdiesunterVerwen⑨
- dungvonüchmodÇtun.EsmußbeidenDateienBit1(dezimal=2)gesetzt
- sein,umeineühideÇ-Kennzeichnungzuerreichen,bzw.mußdiesesBitbei
- normalsichtbarenDateiengelöschtsein.DasganzemitdemVerstecken
- funktioniertallerdingsnur,wennwirklichnurdieseseineBitgesetzt
- Çist!
- UmeineDateientsprechendzukennzeichnen,mußmanalsoinZukunft
- "chmod<datei>2"verwenden.
- IchhabediesesKommandoentfernt,daeseinigeLeutegab,dielieber
- einkürzeresProgrammhabenwolltenunddafürauf,zugegebenermaßen,
- überflüssigeBefehlezuverzichtenbereitwaren.
-
- ♪②ê->inverse
- ÇDieBildschirmdarstellungwirdinvertiert,d.h.warvorEingabedes
- BefehlsdienormaleDarstellung,alsoschwarzaufweiß,aktiv,soist
- dieDarstellungnunweißeSchriftaufschwarzemGrund.Wardie
- Darstellungweißaufschwarz,wirdwiederaufdienormaleEinstellung
- umgeschaltet.
- EsgibteinigeProgramme,diefüreineInvertierungderBildschirmdar⑨
- stellungsorgenohnedenOriginalzustandwiederherzustellen.Dieses
- MankowirddurchüinverseÇaufgehoben.
-
- ♪②ê->keyboard
- ÇAusgabederKommandos,diezumEditierenderEingabezurVerfügung
- stehen.
-
- ♪③ê->keys
- ÇDieserBefehlsorgtfüreineAuflistungderFunktionstastenbelegungen
- (vgl.üdefkeyÇ).
-
- ♪②ê->lock
- ÇMöchtemandenRechnereineWeileangeschaltetstehenlassen,aber
- gleichzeitigSorgedafürtragen,daßihnkeinandererbenutzt,sokann
- diesmitülockÇgemachtwerden.
- NachEingabedesKommandoswirdderBenutzeraufgefordert,einPasswort
- einzugeben.ZurBestätigungmußdieseEingabewiederholtwerden.Wares
- jedesmaldasgleicheWort,meldetderRechner,daßerabgeschlossen
- (êlockedÇ)ist.Willmannunweiterarbeiten,mußeinfacherneutdas
- Passworteingegebenwerden.Istesfalsch,erfolgtkeineReaktion,
- sonsterscheintwiederdernormalePrompt.
- EinKnackendesSchutzeskannübrigensdurchdieüRESETÇ-Tasteoderdurch
- einfachesAus-/Einschaltenerfolgen(klar,oder?).
-
- ♪③ê->lp<file(s)>
- Ç(kompletterName:älineprinterÇ)
- SolleineASCII-Datei(odermehrere)aufeinemDruckerausgegeben
- werden,geschiehtdiesdurchdiesesKommando.HatmaneinenDrucker⑨
- spoolerinBetrieb,istdaseinerechtnetteAngelegenheit.
- AußerdemgibtesbeiVerwendungvonülpÇkeineProblememitTAB-Zeichen,
- dasiekorrektexpandiertwerden(wenngewünscht).Esistaußerdem
- möglich,eineTitelseiteauszugebenundvordemeigentlichenAusdruck
- ÇundnachdessenAbschluß,eineSteuersequenzandenDruckerzuschicken
- (vgl.auchüsettabÇ,üsrtitleÇ,üsetlpÇundüresetlpÇ).
- EinStoppendesDruckvorgangskannjederzeitmitü^ZÇausgelöstwerden!
- ♪⑤BEISPIEL:
-
- lpcommand.txt
-
- AusdruckderDatei'command.txt'.
-
- ♪③ê->lpmargin[intvalue]
- Ç(kompletterName:älineprintermarginÇ)
- AnzahlderBlanks,diebeieinemAusdruckvordereigentlichenZeile
- kommen.FehltdasArgument,istdieseFunktionausgeschaltet.
-
- ♪③ê->lppage[intvalue]
- Ç(kompletterName:älineprinterpageÇ)
- AnzahlderZeilenproSeitebeieinemAusdruck.WirdkeinArgument
- angegeben,istdieseFunktionausgeschaltet.
- BeieingeschalteterFunktion,wirdjeweilsnachErreichenderZeilen⑨
- zahleinSeitenvorschubdurchgeführt.
-
- ♪③ê->ls[filedeskriptor(en)]
- Ç(kompletterName:älistshortÇ)
- DieserBefehlisteineAbartvonüdirÇ.Dortwirdeineausführliche
- InformationsfolgezujedemFilemitausgegeben.Diesunterbleibtbei
- ülsÇ.HierwerdennurdieDatei-bzw.Ordnernamenaufgelistet.
-
- ♪②ê->merge<fileA><fileB>
- ÇDiesesKommandowirdzurVerbindungvonzweiASCII-Filesbenutzt.Dabei
- wird'fileB'an'fileA'angehängt.'fileB'wirdênichtÇmodifiziert!
- 'fileA'und'fileB'dürfennichtdiegleicheDateidarstellen,d.h.der
- Befehl"mergecommand.txtcommand.txt"würdenichtfunktionieren!
-
- ♪③ê->mkdir<dirname>
- Ç(kompletterName:ämakedirectoryÇ)
- DieserBefehlerzeugteinenneuenOrdner.Mansollteallerdingsnicht
- vergessen,daßnureinebestimmteVerzeichnistiefezulässigist.Auch
- das'40-Ordner-Problem'solltemanimAugebehalten.
- NachderGenerierungdesneuenVerzeichnisses,findetmandortbereits
- zweiEinträge,nämlich'..'und'.'.'.'stellteeinenVerweisaufden
- Ordnerdar,'..'isteinVerweisaufdasdarüberliegendeVerzeichnis
- (vglauch"cd..").
- ♪√ÇBEISPIEL:
-
- mkdirschrott
-
- EswirdimaktuellenDirectorydasneueUnterverzeichnis'schrott'
- eingerichtet.Mit"cdschrott"undüdirÇkannmananschauen,welche
- Dateiendabeierzeugtwordensind('.'und'..',welchesonst?).
-
- ♪②ê->more<file(s)
- ÇÄhnlichdemücatÇ-KommandokönnenmitdiesemBefehleineodermehrere
- ASCII-DateiinhalteaufdenBildschirmausgegebenwerden.DerUnter⑨
- schiedzuücatÇliegtdarin,daßimmernureineBildschirmseiteausgege⑨
- benwird.DannwirdangehaltenundaufdasDrückenderüSPACEÇ-Tastebzw.
- vonRETURNgewartet.WirdüSPACEÇbetätigt,erfolgtdieAusgabeeiner
- neuenSeite,beiüRETURNÇwirdzeilenweisefortgefahren.
- DieAusgabekannjederzeitmitü^ZÇabgebrochenwerden.
- DasKommandoerlaubtdenZugriffaufDateien,diesichinanderen
- Ordnern/aufanderenLaufwerkenbefinden.
- ♪⑤BEISPIEL:
-
- more*.pas
-
- EswerdensämtlichePascalsourcefilesausgegeben(ichgehedabeidavon
- aus,daßdieExtension'PAS'sichaufPASCALbezieht).
-
- ♪③morec:/duplikat/com.c
-
- AusgabedesFiles'com.c'dersichaufLaufwerkCimVerzeichnis
- '/duplikat/'befindet.
-
- ♪②ê->mouseoff
- ÇDerSinndiesesunddesnächstenBefehlsmagaufdenerstenBlicknicht
- einleuchten,aberessteckttrotzdemeinerdahinter.
- DasKommandoschaltetdenMauszeigeraus.NormalerweiseistimInter⑨
- preterdieserZeigersowiesonichtsichtbar.EsgibtaberProgramme,
- diediesenZeigersehrwohlbenutzen,undhängtsichnunsolchein
- Programmauf,kannesunterUmständenzueinemherrlichenDurcheinander
- mitderMauskommen.
- Wirdz.B.einProgrammmitderExtensionPRGaufgerufen,schaltetder
- InterpreterautomatischdenMauszeigervordemProgrammaufrufein.
- SchaltetdiesesProgrammnundiesenZeigerwiederausundihnauchbei
- erreichendesProgrammendesnichtwiederein(wieesgentlemanlike
- wäre),sogibtesProbleme,daderInterpreternachdemLaufdes
- ProgrammsdenZeigerabschaltet,undzwarunabhängigdavon,oberein-
- oderausgeschaltetwar.
- Ichnehmemalan,daßdieProblematikbisjetztnochnichtsoganz
- Çeinleuchtet,schließlichwillmanja,daßderMauszeigerverschwindet.
- LeideristdasGEMabersoorganisiert,daßessichmerkt,wieoftder
- Zeigerausgeschaltetwordenist,d.h.wirderzweimalausgeschaltet,
- mußer,umwiedersichtbarzuwerden,auchwiederzweimaleingeschaltet
- werden.DerInterpreterhatnunaberkeineAhnung,wieoftderZeiger
- ausgeschaltetwurde.DerBenutzersolltenunselbstfüreineKorrektur
- desProblemssorgen.Diesistnotwendig,wennmitAnwendungengearbei⑨
- tetwird,diedenMauszeigerverwenden.Eskannsonstpassieren,daßin
- einemsolchenProgramm,indemdieMausgebrauchtwird(z.B.einGEM-
- Editor),keineauftaucht.EsmachtnichtvielSpaß,jetztwieein
- blindesHuhnherumzuirren,bismanwiederausdemProgrammrauskommt
- (wennmannichtliebergleichRESETdrückt).
- Mansolltealso,fallsdasangesprocheneProblemaufgetauchtist,
- solangedenMauszeigeranschalten(ümouseonÇ),biserwiedersichtbar
- ist.DanngibtmaneinmalümouseoffÇeinunddieWeltistwiederin
- Ordnung.NormalerweisereichtesübrigenszweimalümouseonÇeinzugeben.
- DerAufwandbleibtalsoineinemvertretbarenRahmen.
-
-
- ♪②ê->mouseon
- ÇDieserBefehlschaltetdenMauszeigerein.
- ê
- ♪③->mv<fileA><fileB>
- Ç(kompletterName:ämoveÇ)
- ZumUmbenenneneinesFileswirddiesesKommandozurVerfügunggestellt.
- Aus'fileA'wird'fileB'.
- ümvÇkannmit'*'benutztwerden.Mansollteallerdingseinbißchen
- aufpassen,dadieMöglichkeitenzumUnsinnanstellennichtzuverachten
- sind.
- ♪⑤BEISPIEL:
-
- mvoldie.daturoldie.dat
-
- DerFile'oldie.dat'wirdindenFile'uroldie.dat'umbenannt.
-
- ♪②ê->numbers
- ÇSchalteteinFlagein/aus,dasbestimmt,obbeieinemAusdruck
- Zeilennummernausgegebenwerden.
- üflagsÇkannzurÜberprüfungderaktuellenEinstellungbenutztwerden.
-
- ♪③ê->od<file(s)>
- Ç(kompletterName:äoutdumpÇ)
- MöchtesichderBenutzerbestimmteDateieninhexadezimalerSchreib⑨
- weiseanschauen,sokannerdiesmitHilfediesesKommandostun.
- Der/dieFile(s)werdenseitenweiseaufdemBildschirmausgegeben.Ein
- AbbruchkanndurchDrückenvonü^ZÇerfolgen.
- ÇDerBefehlistsoausgelegt,daßauchaufandereLaufwerkebzw.
- Unterverzeichnissezugegriffenwerdenkann.
- ♪⑤BEISPIEL:
-
- odcommand.txt
-
- GibtdieDatei'command.txt'hexadezimalaus.
-
- ♪③od/megamax/headers/*.h
-
- HexadezimaleAusgabealler'.h'-DateiendiesichimVerzeichnis
- '/megamax/headers/'befinden.
-
- ♪②ê->page[intvalue]
- ÇIstdieseFunktioneingeschaltet,wirdamSeitenanfangbeieinem
- AusdruckderFilenameunddieaktuelleSeitennummerausgegeben.Das
- ArgumentgibtdieStartseitennummeran.BeifehlendemArgumentistdie
- Funktionausgeschaltet.
-
- ♪②ê->path<pfad(e)>
- ÇAngabeeinesPfades,derzumAuffindeneinesProgrammesdurchsucht
- werdensoll.EskönnenmaximalzwanzigPfadeangegebenwerden.
- Programmnamenmüssen,fallssienichtimaktuellenVerzeichniszu
- findensind,komplettangegebenwerden!Pfadnamenmüssendurch'/'
- (bzw.'\')abgegrenztsein.Diesgiltallerdingsauch,wennessichnur
- umLaufwerksnamenhandelt(z.B."patha:/c:/"),dannwirddort
- allerdingsnurimHauptverzeichnisgesucht.
- InvorhergehendenProgrammversionenerfolgtekeinSprungindiezu
- durchsuchendenOrdner.DiesesMankohabeichnunbeseitigt.Diesgilt
- allerdingsnurfürProgrammemitderExtensionê'.PRG'Ç!Ichsollte
- vielleichtdenGrundfürdieseEinschränkungnennen:
- IchbenutzeeinenbestimmtenOrdnerzurAufbewahrungvonTool-Program⑨
- men,diemehroderwenigerdieEndungen'.TTP'haben.Nehmeichnun
- diesenOrdnerindiezudurchsuchendenPfadeauf,wirdzwarbei
- AuffindendesProgrammsindenOrdnergesprungen,aberdieArgumente
- (inderHauptsacheFiles)befindensichhaltnichtdort,alsofunktio⑨
- niertdasganzenicht.DadiemeistenBenutzerGEM-Anwendungenam
- laufenhaben,diez.B.'RSC'-DateiennachladenunddiedieEndung
- '.PRG'besitzen,dürftemanmitderEinschränkunglebenkönnen.
- SelbstverständlichkanndieserautomatischeSprungindenzudurchsu⑨
- chendenOrdnerauchabgeschaltetwerden(vgl.üpchangeÇ).DasKommando
- verhältsichdannwieindenälterenInterpreterversionen.
- Außerdemistesjetztauchmöglich,wieimHauptverzeichnis,nurnoch
- TeilstringszumStarteneinesProgrammeseinzugeben.FürdieEindeutig⑨
- keitdesAufrufsmußallerdingsderBenutzerselbersorgen!
- Mansolltvielleichtauchnochbeachten,daßmitderAnzahlderzu
- ÇdurchsuchendenVerzeichnisseauchdieZeitbiszurAuffindungbzw.bis
- zurMeldung,daßeinProgrammnichtgefundenwerdenkann,steigt!
- DieSuchenacheinemProgrammgeschiehtinfolgenderReihenfolge:
-
- 1.wennALIAS-Eintrag,dannUmwandlung
- 2.wennmitPfadangabe,dannAusführung
- 3.wenninaktuellemVerzeichnis,dannAusführung
- 4.diemitüpathÇfestgelegtenWegeabsuchenundggf.Ausführung
- eswirddabeidieArgumentfolgeinReiheabgesucht!
-
- DieBedeutungvonALIASwirdineinemextraAbschnitterläutert!
- DaichkeinrechtesVertrauenindieFähigkeitendesTOShabe,
- existiertbeimWechselnderPfadeeinKontrollmechanismus,derbei
- einemfehlerhaftenOrdneransprungeineWarnungausgibt.Diessollte
- eigentlichniederFallsein,abermansollnieniesagenwasdasTOS
- betrifft.
- ♪⑤BEISPIEL:
-
- path/erste/a:/c:/oben/unten/
-
- EinexternesProgrammwürdeindiesemFallerstimaktuellenVerzeich⑨
- nisgesuchtwerden.Kannesdortnichtgefundenwerden,wirdversucht,
- esimOrdner'/erste/'zufinden.Istesauchdortnichtvorhanden,
- wirdzumHauptverzeichnisaufLaufwerkAgegangen.Beieinemweiteren
- FehlschlagwirdnunnochaufLaufwerkCimDirectory'/oben/unten/'
- gesucht.
-
- ♪③path
-
- OhneArgumentewirdnurdereingestellteSuchpfadausgegeben.
-
- ♪③ê->pchange
- Ç(kompletterName:äpathchangeÇ)
- SchaltetdenPfadwechseldesüpathÇ-Kommandosein/aus.MitüflagsÇkanndie
- aktuelleStellungüberprüftwerden.VoreingestelltistdasWechselnder
- Directories.
-
- ♪③ê->pwd
- Ç(kompletterName:äprintworkingdirectoryÇ)
- DieserBefehlzeigtdenaktuellenPfadan,indemmansichgerade
- befindet.
-
- ♪②ê->reset
- ÇDerRechnerführteinenResetaus.
-
- ♪²ê->resetlp[intvalue(s)]
- Ç(kompletterName:äresetlineprinterÇ)
- DieserBefehlwurdebereitsbeimülpÇ-Kommandoerwähnt.WirdülpÇzum
- AusdruckvonDateienbenutzt,wirdvorodernachdemeigentlichen
- DruckvorgangeineSteuersequenzandenDruckergeschickt(z.B.Schrift⑨
- größeodereinInitialisierungskommando).
- üresetlpÇistnunfürdieSequenzzuständig,dienachdemAusdruckanden
- Druckergeschicktwird.MöchtederBenutzer,daßkeinesolcheFolge
- geschicktwird(Defaulteinstellung),mußereinfachüresetlpÇeingeben.
- MitüflagsÇkannmansichdieaktuellgültigeSteuersequenzanschauen.
- ♪⑤BEISPIEL:
-
- resetlp122864
-
- DieseSequenzsorgtnachAbschlußeinesAusdrucksfüreinenSeiten⑨
- vorschubundderUmschaltungaufdieGrundeinstellungeinesNEC-P6-
- Druckers.
-
- ♪③ê->rm<file(s)>
- Ç(kompletterName:äremoveÇ)
- ZumLöschenvonDateienfindetdieserBefehlVerwendung.Eskönnen
- damitsowohlganzeFilegruppenalsauchnurbestimmteEinzeldateien
- entferntwerden(VerwendungvonäWildcartsÇistmöglich).
- MansolltebeiBenutzungdesKommandoseinbißchenaufpassen,sonst
- löschtmanDateien,diemaneigentlichnochbraucht.
- DieserBefehlerlaubtdenZugriffaufandereVerzeichnisseundLauf⑨
- werke.
- Eskannvorkommen,daßFilesvordemLöschengeschütztsind(Attribut:
- ênurlesbar)Ç.DerBefehlistnichtinderLage,solcheDateienzu
- entfernen(vgl.auchüsaveÇundüunsaveÇ)!
- ♪⑤BEISPIEL:
-
- rm*.*
-
- HierwerdenalleFilesgelöscht.
-
- ♪③rm*.prgcommand.txt
-
- HierwerdenerstallePRG-Dateienentfernt,imAnschlußdaranderFile
- 'command.txt'.
-
- ♪③rmc:/copy/c_files/
-
- AufLaufwerkCwerdenalleDateienimUnterverzeichnis'/copy/c_files/'
- gelöscht.
-
- ♪²ê->rmdir<dirname>
- Ç(kompletterName:äremovedirectoryÇ)
- Eskannvorkommen,daßOrdnerentferntwerdensollen.Dergeeignete
- BefehlfindetsichinürmdirÇ.DerzulöschendeOrdnermußallerdings
- leersein!
- ♪⑤BEISPIEL:
-
- rmdirschrott
-
- DieseEingabebewirkteinEntfernenvonDirectory'schrott'.
-
- ♪③ê->save<file(s)>
- ÇFiles,aufdiedieserBefehlangewandtwird,sindnurnochlesbar.
- RückgängiggemachtwerdenkanndiesesKommandomitüunsaveÇ.
- Mansolltebeachten,daßesProgrammegibt,dieaufsolchermaßen
- geschützteDateienmitdemfrohenWerfenvonBombenreagieren.Esmuß
- alsovorVerwendungsolcherProgrammeüunsaveÇbenutztwerden!
-
- ♪③ê->savehist
- Ç(kompletterName:äsavehistoryÇ)
- PerDefaulteinstellungwirdbeimVerlassendesInterpreterseinFile
- êhistory.datÇangelegt,indemsichdiezuletztgemachtenEingaben
- befinden.
- DieserBefehlbewirktnuneinEin-/AusschaltendieserAbspeicherfunk⑨
- tion.
- MitüflagsÇkannbestimmtwerden,obsiegeradeeingeschaltetistund
- kanndann,jenachBenutzerwunsch,umgeschaltetwerden(toggle-Funk⑨
- tion).
-
- ♪③ê->setlp[intvalue(s)]
- Ç(kompletterName:äsetlineprinterÇ)
- DieanalogeFunktionzuüresetlpÇfindetsichindiesemBefehl.Diehier
- angebbareSteuersequenzwirdvordemeigentlichenAusdruckanden
- Druckergeschickt.Sollnichtsgeschicktwerden(default),isteinfach
- wiederüsetlpÇeinzugeben.
- MitüflagsÇkanndiegültigeSteuersequenzangeschautwerden.
-
- ♪③ê->settab<intvalue>
- Ç(kompletterName:äsettabulatorÇ)
- EineweitereFunktion,diedenAusdrucksteuert,wirddurchdieses
- Kommandoabgedeckt.DerBenutzeristhiermitinderLage,dieTabula⑨
- torweitezubestimmen(defaultmäßigauf8Zeichen).DieminimaleWeite
- liegtbeizweiZeichen!
- üsettabÇbeeinflußtübrigensnichtnurDruckerausgaben.AuchAusgabenviaü
- catÇoderümoreÇbenutzendieeingestellteTabulatorweite!
- DieserBefehlhatbeiListingsnatürlichnureineBedeutung,wenndas
- ÇTabulatorflag,daßangibtobTABoderdieentsprechendeAnzahlBlamks
- gesendetwird,gesetztist.
- üflagsÇzeigtdieaktuelleTabulatorweitean.
-
- ♪②ê->slash
- ÇNormalerweisekannmanstatt'\'auch'/'benutzen(z.B.beiücdÇ).Es
- gibtaberexterneProgramme,diemitArgumentengefüttertwerden
- können,dieein'/'enthalten.DaderInterpreter'/'inein'\'
- umwandelt,kanneshierzuProblemenkommen.MitüslashÇkanndiese
- Konvertierungein-bzw.ausgeschaltetwerden.
- MitüflagsÇkannderaktuelleZustandangeschautwerden.
- ê
- ♪③->srhist
- Ç(kompletterName:äset/resethistoryÇ)
- NormalerweisewerdendieletztenfünfzigEingabenineinerHistoryta⑨
- bellegehalten.DamitistderBenutzerinderLage,aufeinfacheWeise,
- aufdieseKommandosBezugzunehmen(s.u.).
- UmdieseEintragungenein-/auszuschalten,kanndieserBefehlbenutzt
- werden.
- MitüflagsÇkannderaktuelleStanddesentsprechendenFlagsangeschaut
- werden.üsrhistÇerzeugtdanndieentgegengesetzteStellung.
- FindenkeineEintragungenindieHistorytabellestatt,erscheintder
- Eingabezählerinvers.
- ê
- ♪③->srtab
- Ç(kompletterName:äresettabulatorÇ)
- Normalerweise(default)sendetderBefehlülpÇkeineTAB-Zeichenanden
- Drucker,sondernexpandiertdieseZeichenkorrektundschicktdie
- entsprechendeAnzahlBlanks.DieserBefehlkannnunzumSet⑨
- zen/RücksetzendieserFähigkeitbenutztwerden.
- MitüflagsÇkanndieaktuelleEinstellungüberprüftwerden.
-
- ♪③ê->srtitle
- Ç(kompletterName:äset/resettitleÇ)
- NunzumvorletztenBefehl,mitdemeinDruckerlistingbeeinflußtwerden
- kann.DefaultmäßigwirdvorjedemAusdruckeinTitelblatterzeugt,auf
- demderFilenamensteht.Istdiesjedochnichtgewünscht,kannmit
- üsrtitleÇdieseMöglichkeitabgeschaltet(oderauchwiedereingeschaltet)
- werden.
- MitüflagsÇkannmalwiederderaktuelleZustanddesentsprechendenFlags
- angeschautwerden.
-
- ♪②ê->string<filedescriptor><string>
- ÇDieserBefehldientdemAbsuchenvonDateiennacheinerbestimmten
- Zeichenfolge.EskanndabeisowohlnureineDateialsauchmehrere
- angesprochenwerden(über'*').DerSuchstringmußzwischenzwei
- ÇgleicheZeicheneingeschlossensein!DerBefehlbeziehtsichimmerauf
- dasaktuelleVerzeichnis.
- DiemaximaleLängeeinessolchenStringsbeträgtêzwanzigÇZeichen.
- Überschreiteterdiese,erfolgteineKürzungaufdieseZeichenlänge!
- ♪③BEISPIEL:
-
- string*.*/Ohsolemio/
-
- EswerdenalleDateiendesaktuellenOrdnersnachdemString'Ohsole
- mio'abgesucht.WirdderStringineinemFilegefunden,wirdeine
- entsprechendeMeldungausgegeben.
-
- ♪③stringcommand.txt*Bingo*
-
- IndiesemFallwirdderFile'command.txt'nachdemString'Bingo'
- abgeklappert.
- Mansieht,daßdieArgumentbegrenzungenvölligverschiedenseinkönnen,
- imoberenBeispiel'/',imunteren'*'.Siemüssennurbeider
- jeweiligenEingabeübereinstimmen.Esverstehtsichwohlvonselbst,
- daßdieseBegrenzungennichtimeigentlichenSuchstringenthaltensein
- dürfen!
-
- ♪②ê->sz
- ÇDerletzteBefehlzurDruckersteuerung.ErentstandausdemMangel
- meinesDruckers,einvernünftiges'ß'machenzukönnen.
- IstdasentsprechendeFlaggesetzt,wirdeinfachderCodefüreinBeta
- (225)geschickt,wennimTextein'ß'vorkommt.IstdasFlagnicht
- gesetzt,wirddereigentliche'ß'-Codegeschickt(158).
- MitüflagsÇkanndieFlagstellungüberprüftwerden.Defaultmäßigist
- diesesFlagübrigensgesetzt,alsowirdBetageschickt!
-
- ♪②ê->time[hh:mm]
- ÇDasSetzenbzw.AbfragenderUhrzeitgeschiehtmitdiesemKommando.
- WirdkeinArgumentangegeben,soerfolgteineAusgabederaktuellen
- Systemzeit,sonstwirddasArgumentalsneueSystemzeitübernommen.Bei
- derAusgabewerdenauchdieSekundenangegeben.BeimSetzendürfen
- diesenichtangegebenwerden!
- ♪⑤BEISPIEL:
-
- time12:4
-
- SetzenderUhrzeitauf12Uhr4Minuten.DieSekundenwerdenautoma⑨
- tischaufNullgesetzt.
-
- ♪②ê->tree
- ÇAusgabeallerOrdnerundUnterordnereinesLaufwerks.
- Ç
- ♪②ê->unsave<file(s)>
- ÇFiles,dienurlesbarsind,alsonichtgelöschtwerdenkönnen,werden
- durchdiesesKommandoentschützt.DerumgekehrteBefehlistüsaveÇ.
-
- ♪②ê->version
- ÇDiesesKommandogibtdasErstellungsdatumaus.Esexistiertkeine
- Versionsnummermehr!
-
- ♪③ê->wc<file(s)>
- Ç(kompletterName:äwordcountÇ)
- InteressiertmansichfürdieAnzahlvonZiffern,ZeilenundZeichen
- einesFiles,sofindetdieserBefehlVerwendung.Allesinallemkein
- besonderswichtigesKommando.
-
-
- ♪③ê3.1 BesondereBefehle
- Ç
- DiefolgendenvierBefehlediezumErzeugeneinesASCII-Filesbenutzt
- werdenkonnten,gibtesênichtÇmehr:
- ê
- Ç êopen<file>
- Ç êwrite<string>
- Ç êappend<file>
- Ç êclose
- Ç
- DiesstelltallerdingskeineEinschränkungbeidereinfachenKreierung
- vonTextdateiendar.IchmöchtedenBenutzeraufdenAbschnitt,der
- sichmitderêAusgabeumleitungÇbefaßt,verweisen.DieVerbindungdieser
- MöglichkeitmitdemüechoÇ-BefehlerlaubtêsämtlicheÇAktionendervier
- weggefallenenBefehle.
- DerGrundfürdasStreichenderKommandoswarwiederderVersuch,den
- InterpreteretwaskompakterzumachenundredundanteBefehle,dienur
- einenunnötigenBallastdarstellen,zuentfernen.Ichglaube,daß
- zumindestindiesemFallkeineEinschränkungfürdenBenutzergegeben
- ist.
-
-
- ♪②MöchtederBenutzerdasLaufwerkwechseln,kannerdazudenücdÇ-Befehl
- benutzen,diesistabernichtunbedingtnotwendig.Esistauchmöglich,
- diesenWechseleinfachdurchLaufwerkskennungundanschließendenDop⑨
- pelpunktvorzunehmen.
- ♪④BEISPIEL:
- a:
-
- WechselzuLaufwerkA.
- Ç
-
- ♪③ê3.2 Zahlkonvertierungen
- Ç
- Eskommtabundzuvor,daßZahlumrechnungenvorgenommenwerdenmüssen.
- DerInterpreterstellthierdreiFunktionenzurVerfügung:
-
- ♪②ê->#<decvalue>
- ÇEingabeeinerDezimalzahlundderenUmrechnungindashexadezimaleund
- oktaleÄquivalent.
-
- ♪②ê->$<hexvalue>
- ÇEingabeeinerhexadezimalenZahl.AlsResultatwerdendiedezimalenund
- oktalenÄquivalenteausgegeben.
-
- ♪②ê->\<octvalue>
- ÇUndalsletztesdieUmrechnungfüroktaleZahlen.Mankannhier
- übrigenseinProblemerkennen,daßeventuellauftritt,wennmit'\'ein
- Programmaufgerufenwerdensoll.ImZweifelsfallmußmaneinfachnur
- dieLaufwerksbezeichnungmitangegebenodermit'/'arbeiten.
-
-
- ë4 DieALIAS-Einrichtung
- Ç
- ê4.1 Einführung
- Ç
- DerKommandointerpreterbietetdemBenutzerdieMöglichkeit,bestimmte
- Befehleumzubenennen.WirdzumBeispielöfterseinspeziellesProgramm
- aufgerufen,kanndieserAufrufumbenanntwerden.
- SeidasProgramm'xcompiler.prg'immerwiederaufzurufen,kanndieses
- Kommandoz.B.in'cc'umbenanntwerden(sinnigerweisegeheichin
- diesemBeispieldavonaus,daßdieserominöse'xcompiler'einC-
- Compilerist.'cc'wäresonsteinrechtverwirrenderName).Wirdein
- EditoröfterszumEditiereneinesbestimmtenFilesaufgerufen(bei
- einerProgrammerstellungpassiertdieseigentlichdauernd),kannder
- normaleAufruf'editor.prgfile'einfachineinenkürzeren,z.B.
- 'edit',umbenanntwerden.
- SchreibfauleNaturenundLeute,diemitderNamensgebungderinternen
- Kommandosnichtbesondersglücklichsind,könnendurchdiesenMechanis⑨
- musihreeigeneNomenklaturaufbauen.
-
- SämtlicheUmbenennungenkönnenimFileêalias.datÇabgelegtwerden.Diese
- DateiwirdzumProgrammbeginnvonêcommand.prgÇeingelesen(soweit
- vorhandennatürlich).Diesfunktioniertallerdingsnur,wennsichdiese
- DateiimägleichenÇVerzeichniswiederInterpreterbefindet!
- êalias.datÇwirdübrigensbeimVerlassenvonêcommand.prgÇnichtautoma⑨
- tischabgespeichert(vgl.üsavealiasÇ).
- DiealternativenKommandonamenkönnenalsosofortgenutztwerdenund
- müssennichtzujederSitzungneueingegebenwerden!
- Esistnatürlichmöglichganzohneêalias.datÇauszukommenunddie
- ErzeugungderUmbenennungendurcheinenBatchfilevorzunehmen.Der
- bequemereWegerscheintmitjedochdieVerwendungdieserDateizusein.
-
- ♪④ê4.2 ALIAS-Befehlssatz
- Ç
- ê->alias[string(s)]
- ÇAufzeigenalleraktuellgültigenUmbenennungenundihrerÄquivalente.
- EsistauchdieselektiveAuswahleinesEintrags(bzw.mehrerer)
- möglich.
- ê
- ♪③->delalias<name>
- Ç(kompletterName:ädeletealiasÇ)
- LöscheneinesAlias-EintragsausderAlias-Liste.
-
- ♪②ê->getalias
- ÇDerFileêalias.datÇwirdmitdiesemKommandoeingelesen.
-
- ♪³ê->newalias<new><old>
- ÇUmbenennungvon'old'in'new'.DieserBefehldientalsozurAlias-
- Erzeugung.
- NeueEinträgewerdenübrigensnichtandieAlias-Listeangehängt,
- sondernstehenimmeranersterStelle(Zeit-undCodeersparnis).
- ♪⑤BEISPIEL:
-
- newaliasccxcompiler.prg
-
- DieBeschreibungstehteigentlichschonindemobigenBlabla.Jede
- Eingabevon'cc'wirdduch'xcompiler.prg'ersetzt.
-
- ♪③newaliasalalias
-
- StattaliasführtnunauchüalÇzumAufzeigenderAlias-Einträge.
-
- ♪②ê->savealias
- ÇAbspeicherndergültigenUmbenennungenimFileêalias.datÇ.Esmuß
- beachtetwerden,daßdiesesAblegenderDateinichtautomatisch
- erfolgt!
- MankannsichübrigensmithilfeeinesBatchfileseineEnderoutine
- schreiben,diemanzumVerlassendesInterpretersaufruftunddie
- üsavealiasÇenthält.
-
-
- ë5 DieHistory-Einrichtung
-
- ê5.1 Einführung
- Ç
- EinweiteresBonbondesInterpretersistdieMöglichkeit,bereits
- eingegebeneBefehleaufeinfacheWeiseerneutaufzurufen.Diesist
- allerdingsaufdieletztenfünfzigEingabenbeschränkt.
- UNIX-KennerndürftedieseEinrichtungundihreVorzügewohlhinlänglich
- bekanntsein.
- ♪⑤EineinfachesBeispielsolldiepraktischeAnwendungdieserFähigkeit
- aufzeigen.ZumErstelleneinesProgrammsinC,PASCALu.s.w.sindimmer
- diegleichenSchrittenotwendig:
-
- Editieren->Compilieren->Linken->Probelauf
-
- MeisterfolgtzwischenCompilierenundLinkennocheineKurzvisitebeim
- Editor,weilhaltdochnocheinkleinesFehlerchenimSourcecode
- aufgetauchtist.
-
- ♪⑤DieKommandosfürdasBeispielseiennunfolgende:
-
- 77>edbsp.pas
-
- Bedeutung:AufrufdesEditorszurBearbeitungdesFiles'bsp.pas'.
-
- ♪③78>pasbsp.pas
-
- Bedeutung:AufrufdesCompilerszurObjektfileerzeugung.
-
- ♪⑤SolltenjetztFehlermeldungenaufgetauchtsein,geht'swiederzurück
- zumEditor.Alsowieder
-
- 79>edbsp.pas
-
- reinklopfenu.s.w.
-
- Bevoresjetztweitergeht,sollteichvielleichtverraten,daßdie
- ZahlenvordenBeispieleingabenvomInterpretergeliefertwerden.
- DieserkleineHinweisistfürdasweitereVerständnisziemlichhilf⑨
- reich!
-
- ♪②DurchdieHistoryeinrichtunggenügtes,wennderBenutzerbeiBefehl79
- ("edbsp.pas")einfachnur"!77"eingibt.EswirddannKommando77
- erneutausgeführt.
- EskannabernichtnurüberdieKommandonummernaufzurückliegende
- EingabenBezuggenommenwerden;dieEingabe"!e"hätteauchzum
- ÇWiederaufrufdesEditorsgeführt,d.h.eswirdbeidieserEingabenach
- demletztenKommandogesucht,daßmitdemBuchstaben'e'begonnenhat,
- und,fallsesgefundenwerdenkann,erfolgteinerneuterAufrufdesnun
- expandiertenBefehls(hierwäredies"edbsp.pas").
-
- DieMöglichkeit,alteKommandosüberdenAnfangsbuchstabenzurückzuho⑨
- len,istnichtaufeinenBuchstabenbegrenzt.Eswirdnachdemletzten
- Kommandogesucht,daßmitdemeingegebenenTeilstringübereinstimmt.
- EinweiteresBeispielsolldasverdeutlichen:HatderBenutzerkürzlich
- denBefehl"cpafilebfile"eingegebenundaufdiesenBefehlfolgend
- dasKommando"cmpafilebfile",sowürdedurch"!c"derücmpÇ-Befehl
- erneutaufgerufenwerden.DurchEingabevon"!cp"würdeaberein
- eindeutigerBezugaufdenKopierbefehlgeschaffenunddieserausgeführt
- werden.
- Esistalsomöglich,durchbeliebiglangeTeileingabeneindeutige
- ZuordnungenzuvorhergehendenBefehlenzubilden.Esseinocheinmal
- daraufhingewiesen,daßsichinderHistory-Listenurdieletzten
- fünfzigBefehlebefindenunddaßmannurdieseerneutdurchdie
- History-Kommandosaufrufenkann.
- JedeNeueingabewirdindieseListeeingetragen,dafürwirdderälteste
- Eintragentfernt.NormalerweisemüßteaberderUmfangdergemerkten
- Kommandosmehralsausreichendsein.
- DasbishergesagtemöchteichmiteinemBeispielnochetwasanschauli⑨
- ♪⑦chermachen:
-
- ü120>cpafilebfile
- 121>cmpafilebfile
- 122>!c
- 123>!cp
- 124>!121
- Ç
- EswerdenwiederücpÇundücmpÇverwendet.DieKommandos120und121müßten
- eigentlichklarsein.Kommando122ruftdasletzteKommandoauf,daß
- mitdemBuchstaben'c'begannauf,indiesemFallücmpÇ.Kommando123
- ruftdenletztenBefehlauf,dermitdenBuchstaben'cp'beginnt,und
- dasistKommando120.Befehl124beziehtsichnunexplizitaufein
- Kommando,denücmpÇ-Befehl.
-
- ♪②Zusätzlichzudenü!Ç-KommandosgibtesnocheineweitereMöglichkeit,
- aufalteEingabenzugreifenzukönnen:
- WerschonaufeinerVAXunterVMSgearbeitethat,dürftemitder
- VerwendungderüCURSOR-UPÇbzw.üCURSOR-DOWNÇ-TastenindiesemZusammenhang
- vertrautsein.AuchdieserInterpretererlaubtesmitHilfedieser
- Tasten,alteBefehlewiedersichtbarzumachen.Esistaußerdem
- möglich,durchVerwendungderCursortastenundderbereitsamAnfang
- erwähntenTasten,diesealtenKommandosfreizueditieren.
- ÇVorhergehendeBefehlewerdenmitderüCURSOR-UPÇ-Tasteaufgerufen,ein
- ZurückblätternwirddurchdieüCURSOR-DOWNÇ-Tastebewerkstelligt.
-
-
- ♪⑤ê5.2 Dieë!ê-Befehle
- Ç
- ê->h
- Ç(kompletterName:ähistoryÇ)
- DieserBefehlgibtalleinderHistory-ListestehendenEinträgeaufden
- Bildschirmaus(dieEingabevonühistoryÇbewirktdasgleiche).
-
- ♪②ê->!<nr>
- ÇHierwirddasKommandomitderNummer'nr'nocheinmalaufgerufen.
- InVerbindungmitderfolgendenHistoryfunktion'ü!Ç<string>'mußan
- dieserStelleleideraufeinenSchwachpunkthingewiesenwerden!Pro⑨
- gramme,diemiteinemZiffernstringbeginnenunddienundurch
- '!<ziffernstring>'erneutaufgerufenwerdensollen,kommenênichtÇzur
- Ausführung(bzw.nurdann,wennzufälligerweisederZiffernstringmit
- derKommandonummerübereinstimmt),d.h.ZahlendiesichaufKommando⑨
- zeilenbeziehen,habenimmerVorrangvoranderenStrings!Dassollaber
- nichtheißen,daßesunmöglichist,solchespeziellen'Ziffern'-
- Eingabenzuwiederholen.NurmußmandannstatteinemAusrufezeichen
- zweiverwenden!EinBeispielsolldieseProblematiketwasbeleuchten:
- ü
- 101>1.prg
- 102>!!1
- 103>!1
-
- ÇKommando101rufteinProgramm'1.prg'auf,102wiederholtdiesen
- Aufruf.Nummer103führtzueinerFehlermeldung,daderBefehlmitder
- Nummer1nichtmehrinderHistorytabellevorhandenist.
-
- ♪②ê->!<string>
- ÇEssolldasletzteKommandogestartetwerden,daßmit'string'beginnt.
- ManbeachtediebeimvorhergendenKommandoangesprocheneRestriktion
- diesesBefehls!
-
- ♪②ê->!!
- ÇDieletzteEingabewirdwiederholt.
- ÄltereVersionendesKommandointerpreterserlaubtenstattzweiAusrufe⑨
- zeichenauchdieVerwendungvonnureinem.Diesführtnunzueiner
- Fehlermeldung!
-
-
- ë6 DasBatch-Processing
- Ç
- ê6.1 Einführung
- Ç
- IchwillnunaufdienächsteFähigkeitdesInterpreterseingehen,die
- AbarbeitungvonBatchdateien.
- LeiderwirddieseMöglichkeitauchaufSystemen,diedafürbereits
- 'serienmäßig'eingerichtetsind,zuseltengenutzt.Liebergibtein
- BenutzerimmerwiederdiegleicheBefehlsfolgeein,alssicheineDatei
- zuerstellen,diedieseFolgeenthältunddieeinfachnuraufgerufen
- werdenmuß.
- IneinerBatchdateikannprinzipielljedesderbisherbesprochenen
- Kommandosstehen.EsgibtnocheineganzeReiheweitererBefehle,die
- denAblaufinnerhalbeinessolchenFilessteuern(z.B.Sprungmarken).
-
- WirdineinemBatchfilevielgesprungen,bzw.findenSchleifendurch⑨
- läufestatt,solltederFileineinerêRAM-DiskÇabgelegtundgestartet
- werden.DasbringtzumeineneinengewissenZeitgewinnundnutztauf
- deranderenSeitedieDiskettenichtsoab.Ichmöchteesnicht
- unerwähntlassen,daßderInterpreterdenBatchfilenichtaufeinmal
- einliestunddannabarbeitet,sondernKommandofürKommandoholt.
- DadurchwirdetwasSpeichergespartunddieVerwaltungistumeiniges
- einfacher.
-
- DieAbarbeitungeinerBatchdateikannjederzeitdurchü^ZÇabgebrochen
- werden!
-
- BefehleeinesBatchfileswerdennichtindieHistory-Listeaufgenommen!
-
- DieimFolgendenbeschriebenenBefehlekönnenzumTeilauchim
- Direktmoduseingegebenwerden,diesistallerdingsbeieinigenKomman⑨
- dosnichtsehrsinnvoll.
-
- ♪②üWichtigeÄnderung:
- ÇIndenälterenVersionendesInterpretersgabesdiefesteingebaute
- VariableücounterÇ.SeitEinführungderVariablen,istdieseundalle
- ihreFunktionennichtmehrnotwendig.UmdenProgrammcodezukürzen,
- habeichdeshalbdieseVariableentfernt.BenutzervonücounterÇ-
- Befehlen,üÇmüssendiesedurchentsprechendeVariablenkommandosersetzen!
-
- ê
- ♪④6.2 Befehlssatz
- Ç
- ê->batch<file>[arg0...arg9]
- ÇAufrufeinerBatchdatei'file'.'arg0'bis'arg9'entsprechenStrings.
- InnerhalbeinesBatchfileskönnenPlatzhaltergesetztwerden('$0'bis
- Ç'$9').DiesewerdendurchdieStrings('arg0'bis'arg9')beieinem
- AbarbeitendesBatchfilesersetzt.Dadurchwirderreicht,daßz.B.eine
- Batchdatei,diedieCompilierungunddasLinkeneinesSourcefiles
- zusammenfaßt,fürunterschiedlicheSourcefilesVerwendungfindenkann.
- DieArgumentemüssenaufsteigendbei0beginnendeingesetztwerden,
- d.h.jedes'$0'wirddurchdasersteStringargumentersetzt,jedes'$9'
- würdedurchjedesneunteStringargumentersetztwerden.Esstehenalso
- maximalzehnsolchePlatzhalterzurVerfügung.
- WeiteruntenfolgeneinigeBeispiele,dieunteranderemdieVerwendung
- dieserArgumentersetzungbeleuchtensollen.
- FürfauleBenutzergibtesdieMöglichkeit,aufdieExtension'.COM'zu
- verzichten,auchwenndieBatchdateidiesebesitzensollte.Kannder
- InterpretereinenangegebenenBatchfilenichtfinden,versuchternoch
- durchAnhängenvon'.COM'zumErfolgzukommen.Beispielsweisewürde
- dieDatei'BSP.COM'durch"batchbsp"äÇunddurch"batchbsp.com"
- aufgerufenwerden.IchmöchteandieserStellebetonen,daßein
- BatchfiledurchauskeineExtensionhabenmuß.JedergültigeFilename
- kannfüreineBatchdateiverwendetwerden!
- Eskönnenmaximalê3ÇBatchfileszurgleichenZeitlaufen(sichgegensei⑨
- tigaufrufen)!DieArgumentesindinjedemdieserdreimöglichen
- Dateienunterschiedlich,d.h.besitztFileAdieBelegung'BEISPIEL'
- für'$0'undruftdannFileBauf,soistdort'$0'unbesetzt,wenn
- beimAufrufkeinArgumentêexplizitÇangegebenwordenist.
-
- DasmitdenArgumentenmöchteichandieserStellenochaneinem
- kleinenBeispielzuverdeutlichenversuchen.
- Ichgehemaldavonaus,daßmansichinêcommand.prgÇbefindet.Die
- folgendeEingabesequenzerzeugtnuneineBatchdatei'BSP.COM',die
- nichtsanderesmacht,alszweiArgumentemitüechoÇauszugeben.Der
- BenutzerkanndarandieWirkungderü$Ç-ErsetzungdurchEingabeparameter
- erkennen(hoffentlich).
-
- ♪⑥ü 80>echo|bsp.com
- 81>echo||bsp.comecho$0$1
- 82>batchbsp.comarg1arg2
- arg1arg2
- 83>
- Ç
- JenachdemmitwelchenArgumentendieseDateinunaufgerufenwird,
- ändertsichdieAusgabe.Mansolltesichruhigauchmalanschauen,
- welcheAusgabebeifehlenderArgumentangabekommtbzw.beiAngabevon
- dreiodernochmehrParametern.
-
- ♪②ê->@<file>[arg0...arg9]
- ÇAnalogzubatch,nurdiesmalmitü@Ç.DiesesKommandoisteinfachnurfür
- dieLiebhabervonVMSgedacht.
- Ç
- ♪②ê->?arg<argumentnummer><label>
- ÇWurdeeinBatchfilemitdemArgumentversorgt,sowirdzu'label'
- gesprungen(eine'$0'-Überprüfungwirdz.B.durch"?arg0ist_da"
- repräsentiert).
- ê
- ♪②->?batch
- ÇGibtdieAnzahldergeradelaufendenBatchdateienaus.Eskönnen,wie
- bereitsangesprochen,maximaldreiBatchdateiengleichzeitigoffen
- sein.
-
- ♪②ê->restart
- ÇBefehlinnerhalbeinerBatchdateizumNeustartderDatei,alsodie
- ganzeChosewiedervonvorne,d.h.SprungzurerstenBefehlszeile.
-
- ♪②ê->wait
- ÇWartenaufdasDrückeneinerTaste.DieAbarbeitungeinesBatchfiles
- wirdsolangeangehalten,biseineTastegedrücktwird.
- WirdandieserStelleü^ZÇgedrückt,erfolgteinAbbruchderBatchbear⑨
- beitung!
- DiesesKommandokannz.B.dazuverwendetwerden,dieAbarbeitungeines
- BatchfilessolangeanzuhaltenbiseinausgegebenerTextgelesenworden
- ist.
-
- ♪②ê->stop
- ÇStoppeneinesBatchfiles.
-
- ♪②ê->?stop
- ÇBedingtesStoppeneinerBatchdatei.DerBenutzerwirdgefragt,obder
- Batchfileangehaltenwerdensoll(dievoreingestellteAntwortist
- übrigensêneinÇ).
-
- ♪②ê->break
- ÇEswerdenêsämtlicheÇlaufendenBatchfilesgestoppt,d.h.rufteine
- Batchdateieineandereauf,inderdanndieserBefehlsteht,werden
- beideFilebearbeitungenabgebrochen(imGegensatzzuüstopÇ).
-
- ♪②ê->text
- ÇJedesKommandoinnerhalbdesBatchfilessollaufdemBildschirm
- angezeigtwerden.DieseEinstellungistdefault.
- MitüflagsÇkanndieaktuelleEinstellungangeschautwerden.
-
- ♪②ê->notext
- ÇDieUmkehrungzuütextÇ.NachdiesemKommandowerdendieBatch-Dateikom⑨
- mandosnichtmehrausgegeben.
-
- ♪³ê->errorbreak
- ÇNormalerweisewirdeineBatchbearbeitungabgebrochen,wenneinFehler
- auftritt.DieskanndurchüerrorbreakÇein-bzw.ausgeschaltetwerden
- (abhängigvondergeradeaktuellenEinstellung,diemitüflagsÇmal
- wiederangeschautwerdenkann).
-
- ♪③ê->lbl<marke>
- Ç(kompletterName:älabelÇ)
- EinführungeinerSprungmarkeineinemBatchfile.
- DieseMarkenkönnenmitügotoÇundeinigenanderenBefehlenangesprungen
- werden.
- ZumAufbauvonSchleifeninBatchdateienmußmitdiesenAnprungmarken
- gearbeitetwerden.
- IneinerülblÇ-ZeiledürfensonstkeineBefehlestehen!Alsowärez.B.
-
- lblbeispielechodiesisteinBeispiel
-
- nichterlaubt(eskommenzweiKommandos,ülblÇundüechoÇ,vor).
-
- ♪②ê->goto<marke>
- ÇSprungzurangegebenenMarke(vgl.ülblÇ).
-
- ♪②ê->exist<file><marke>
- ÇEswirdgetestet,obdieDatei'file'existiert.IstdiesderFall,
- wirdzu'marke'gesprungen,ansonstenwirdbeimnächstenBefehl
- weitergemacht.
- ♪⑤BEISPIEL:
-
- existtest.prgpaletti
-
- ExistiertderFile'test.prg'wirdzurMarke'paletti'gesprungen.
-
- ♪②ê->size0<file><marke>
- ÇExistiertdieDatei'file'nichtoderistihreGrößeNull,wirdzum
- angegebenenLabel'marke'gesprungen,ansonstenauchwiederbeim
- Folgebefehlweitergemacht(dieumgekehrteFunktionvonüexistÇ).
-
- DieKommandosüsize0ÇundüexistÇsindganzpraktisch,wennesumdie
- Compilierung/AssemblierungundLinkungvonSourcefilesgeht.Esgibt
- z.B.Compiler,dieaufdasFehleneinesSourcefilesmiteinemBombenha⑨
- gelreagieren.DiesesProblemkannmitdiesenBefehlenumgangenwerden.
-
- ♪②ê->;[Kommentar]
- ÇDurchü;ÇwerdenKommentarzeileneingeleitet,diekeinerleiBefehls⑨
- funktionhabenundnurzumbesserenVerständniseinerBatchdatei
- beitragensollen.
- ü;ÇkannübrigensauchnacheinemBefehlstehen,allesvordemSemikolon
- wirdausgeführt,allesdanachwirdignoriert.
- DiesesmarkierenvonKommentarbereichenfunktioniertnurinBatchda⑨
- teien,wirdimDirektmodusversuchteineKommentarzeileeinzugeben,so
- wirddiesewieeinenormaleZeileaufgefaßt,d.h.esdürftewohlzu
- einerFehlermeldungkommen.
-
- ♪②ê->status
- ÇAusgabeeinerVariablen,diezurSteuerunginnerhalbeinesBatchfiles
- benutztwird.SiewirdvorjedemAblaufeinerBatchdateiaufNull
- gesetzt.
- WerdeninnerhalbdesFilesandereProgramme(z.B.Compiler)gestartet,
- sowirdderenRückgabewertinüstatusÇabgelegt.Einfehlerhafter
- CompilerlaufkannalsozumSprungzueinerbestimmtenMarkeoderzum
- AusstiegausdemBatchfileführen.DerBenutzermußallerdingsdie
- RückgabewertederProgrammeundihreBedeutungkennen.
- EskommtdiesemSystemparameterabernocheineandereBedeutungzu.
- JedeFehlermeldungdesInterpretershatineinerFehlernummer,die
- dieseVariabledannenthält,ihrenNiederschlag.Damitlassensichin
- BatchdateienbestimmteReaktionenaufeventuellaufgetreteneFehler
- einbauen(inBASICwürdemanwohlvonäONERRORGOTOÇsprechen).
- Ichmöchtenocheinmalhervorheben,daßderBenutzerêkeinenÇdirekten
- EinflußaufdieBelegungvonüstatusÇnehmenkann!Siewirdnurbeim
- StarteinesBatchfilesaufNullgesetzt,bzw.wenneinexternes
- ProgrammdenRückgabewertNullliefert.Solltejemandmitdieser
- Einschränkungnichtlebenkönnen,mußersichhalteinenBatchfile
- schreiben,dernichtsmachtunddiesendannaufrufen;dasErgebnisist
- danneinüstatusÇ-WertNull.
- WirdnurderBefehlüstatusÇeingegeben,erfolgtdieAusgabedes
- Variablenwertes.DamitlassensichalsoRückgabewertebestimmen.
- üstatusÇisteinLonginteger(32-Bit).
-
- ♪②ê->oldy<fileA><fileB><label>
- ÇWenndasErstellungsdatumvon'fileA'vordemvon'fileB'liegt,wird
- zu'label'gesprungen.
- MitdiesemBefehlistesmöglich,eigeneMAKE-Umgebungenzuerstellen.
- ImAnhangbefindetsicheinBeispiel,daßsichmitderVerwendung
- diesesBefehlsauseinandersetzt.
-
- ♪③ê->shiftarg
- Ç(kompletterName:äshiftargumentÇ)
- VerschiebtexistierendeArgumenteumeinePositionnachlinks.Das
- ersteElementfälltdabeiheraus.
- ExistierenkeineElemente,hatdiesesKommandokeineFunktion(es
- erfolgtükeineÇFehlermeldung)!
- Existierenz.B.diedreiArgumenteARG1,ARG2undARG3,dannwäreARG1
- Ç$0zugeordnet,ARG2$1undARG3$2.üshiftargÇwürdenunARG1löschenund
- diebeidenverbleibendenArgumenteumeinsnachlinksschieben,d.h.
- ARG2wärenun$0zugeordnetundARG3$1.$2besitztkeinArgumentmehr.
- MitdiesemBefehlkanninBatchdateienaufeinevariableAnzahlvon
- Eingabeparameterneingegangenwerdenbzw.dieErstellungvonSchleifen
- istflexiblergeworden.
-
- ♪③ê->setarg<argument(e)>
- Ç(kompletterName:äsetargumentÇ)
- MitdiesemKommandolassensichü$Ç-Parameterbelegen.Dabeiwirdimmer
- dererstefreieParameterbelegt.ÜbersteigtdieAnzahldabeizehn
- Parameter,werdendieüberzähligenArgumenteignoriert.
- Währe$0bereitsmitStringäXYZÇbelegt(z.B.durcheineParameterangabe
- beimAufrufdesBatchfiles),würdederBefehl"setargabc"$1mitdem
- StringäabcÇbelegen.
-
- ♪②ê->inquire[string]
- ÇDieserBefehlstelltdasinteraktiveÄquivalentzuüsetargÇdar.
- StößtderKommandinterpreterineinemBatchfileaufdiesesKommando,
- mußderBenutzereinodermehereArgumenteeingeben.Diesewerdendann
- wiebeiüsetargÇaufdieü$Çsverteilt.
- 'string'repräsentiertdenText,derdenBenutzerzurEingabeauffor⑨
- dert.DieseAngabeistoptional.
- BEISPIEL:
- ü?arg0gibt_argument
- inquireArgument
- Ç ülblgibt_argument
- echo$0
-
- ÇDieseZeilensolleneinenBeispielbatchfiledarstellen.Wirddiesermit
- einemArgumentaufgerufenerfolgteindirekterSprungzuüechoÇ,anson⑨
- stenwirdderBenutzeraufgefordert,einArgumenteinzugeben.
-
- ♪③ê->cleararg
- Ç(kompletterName:äclearargumentÇ)
- LöschtallevorhandenenParameterbelegungenfürü$Ç-Argumente.
-
- ♪③ê->ifarg<string1><string2><label>
- Ç(kompletterName:äifargumentÇ)
- Wenn'string1'gleich'string2'ist,wirdzu'label'gesprungen.
- DieserBefehlisthauptsächlichfürdieflexibleReaktionaufunter⑨
- schiedlicheEingabeparameterinBatchdateiengedacht.
-
- ♪②ê-><><intvalue>
- ÇIstüstatusÇungleich'intvalue'(Integerzahl),wirdderBatchvorgang
- abgebrochen(z.B.nacheinemfehlerhaftenCompilerdurchlauf).
- Ç
- ♪②ê-><<intvalue>
- ÇIstüstatusÇkleinerals'intvalue'wirdderBatchfileabgebrochen.
-
- ♪②ê->><intvalue>
- ÇIstüstatusÇgrößerals'intvalue'wirdderBatchfileabgebrochen.
-
- ♪②ê->==<intvalue>
- ÇIstüstatusÇgleich'intvalue'wirdderBatchfileabgebrochen.
-
- ♪⑤ê->?status=<zahl><label>
- ->?status#<zahl><label>
- ->?status><zahl><label>
- ->?status<<zahl><label>
- ÇIstüstatusÇgleich,ungleich,größeroderkleineralseinebestimmte
- 'zahl'sollzurMarke'label'gesprungenwerden.
- Damitkannz.B.nacheinemfehlerhaftenCompilerdurchgangdirektzu
- einemEditoraufrufgesprungenwerden.
- EsgibtaberauchnochandereinteressanteMöglichkeiten.Gibtz.B.ein
- bestimmtesProgrammjenachinternemLaufbzw.ResultatandereParame⑨
- ternachProgrammendezurück,kannmithilfevonüstatusÇeinBatchfile
- aufgebautwerden,deraufdieseunterschiedlichenRückgabenindividuell
- reagiert(z.B.Steuerungsaufgabenlassensichdamitrechtproblemlos
- bewältigen).
-
- ♪②SoweitdieetwasspeziellerenBatchfile-Kommandos,diedasArbeiten
- mitdiesenDateienbesondersunterstützensollen.
-
- BefindetsichimVerzeichnis,dasêcommand.prgÇenthält,dieDateiê
- auto.comÇ,sowerdendiedarinenthaltenenBefehlebeimStartdes
- Interpretersausgeführt.EslassensichaufdieseWeisez.B.Funktions⑨
- tastenvorbelegenoderbestimmteFlagssetzen.
-
-
- ♪≤ê6.3 Beispiele
- Ç
- ä6.3.1 Bsp.1
- Ç
- ü ;
- ;BatchfilezurCompilierungundzumLinkeneinesC-Files
- ;durchdenMEGAMAX-C-Compiler
- ;
- mmcc.ttp$0.c ;AufrufdesCompilers
- <>0 ;Abbruch,wennFehleraufgetretenist
- mmlink.ttp$0.o-O$1 ;AufrufdesLinkers
- <>0 ;AbbruchimFehlerfall
- rm$0.o ;LöschendesObjektfiles
- Ç
- DasvorliegendeBeispielkanndirektzurArbeitmitdemMEGAMAX-C-
- Compiler(nichtLASER-C!)herangezogenwerden(ggf.mußmannatürlich
- nochPfadnamenfürdasCompiler-undLinkerprogrammanfügen).
-
- DieerstenvierZeilendienenlediglichderKommentierungderBatchda⑨
- tei.InZeilefünfwirdderCompileraufgerufen.'$0'repräsentiertden
- NamendesSourcefiles(EingabeohneExtension!).
- DerCompilergibtbeieinemerfolgreichenDurchlaufeineNullzurück.
- AndernfallssorgtZeilesechsfüreinenAbbruchderBatchbearbeitung.
- NachderCompilierungsollderObjektfilegelinktwerden.Diesge⑨
- schiehtinZeilesieben.SolltendortProblemeaufgetretensein,
- erfolgtinZeileachteinAbbruch.
- InZeileneunwirdderaufgetreteneObjektfilewiedergelöscht.In
- ZeilesiebenwirdübrigenseinzweitesArgumentbenutzt.Diesesgibt
- denNamendeslauffähigenProgrammsan(diesmalmitExtension).
-
- ♪③EinAufrufdieserBatchdateikönntenunfolgendermaßenaussehen:
-
- batchcccommandcommand.prg
-
- ♪③äquivalentdazuwärederAufruf:
-
- @cccommandcommand.prg
-
- EswirdalsoderC-File'command.c'compiliertundgelinkt.Derdaraus
- resultierendeFilesoll'command.prg'heißen.Derzwischenzeitlich
- entstehendeFile'command.o'wirddurchdenürmÇ-Befehlgelöscht.
- DieeigentlicheBatchdateiheißt'cc'.DieParameterangaben'$0'und
- '$1'werdendurchdieArgumente'command'(für'$0')und'command.prg'
- (für'$1')ersetzt.
-
- DaszweiteBeispieldientdemgleichenZweck,nursolldiesmalimFalle
- ÇeinesFehlerseinEditor('editor.prg'genannt)aufgerufenundnach
- erfolgterEditierungwiederzumAnfangderBatchdateigesprungen
- werden:
-
- ♪ ä6.3.2 Bsp.2
- Ç
- ü ;
- ;BatchfilezurCompilierungundzumLinkeneinesC-Files
- ;durchdenMEGAMAX-C-Compiler
- ;
- mmcc.ttp$0.c ;AufrufdesCompilers
- ?status#0edit ;SprungzumEditor,wennFehler
- mmlink.ttp$0.o-O$1;AufrufdesLinkers
- ?status#0edit ;SprungzumEditor,wennFehler
- rm$0.o ;LöschendesObjektfiles
- stop ;StoppendesBatchfiles
- lbledit ;Label'edit'
- wait ;inallerRuheFehlermeldungenlesen
- editor.prg$0.c ;Editoraufruf
- restart ;NeustartdesBatchfiles
- Ç
- DieInterpretierungdiesesFilesdürftenachdenvorhergehendenAusfüh⑨
- rungen,keineProblememehrbereiten.
-
- ♪Φä6.3.3 Bsp.3
- Ç
- ü ;
- ;BatchdateizurAssemblierungvonSourcefiles
- ;mitdemAssemblerausdemEntwicklungspaketvonDRI
- ;
- notext ;keinGeschwafel
- cls
- size0$0.sfehler ;Sourcefilemußschondasein
- echo1.Assemblierung ;ersterSchritt
- as68.ttp-l-u$0.s
- size0$0.ofehler ;ErgebnisderAssemblierung
- echo2.Linken ;zweiterSchritt
- echo$0.s==>$0.$1
- link68.ttp[u]$0.68k=$0.o ;Linkendes'o'-Files
- size0$0.68kfehler ;wennkeinErgebnis->Fehler
- echo3.Relativlader
- relmod.ttp$0.68k$0.$1 ;Ergebnisbasteln
- rm$0.68k$0.o ;überflüssigeFileslöschen
- echo
- stop
- lblfehler ;Fehlermelden
- echo!!!AbbruchwegenFehler!!!
- echo
- Ç
- MitdiesemFilekanndieAssemblierungvonFilesdurchdenAssembler
- desEntwicklungspaketsautomatisiertwerden.DieseDateibenötigtzwei
- Argumente,zumeinendenNamendesSourcefiles(ohne'.s'-Extension)
- undzumanderendieExtensionderZieldatei,also'.PRG','.TOS',
- '.ACC'oder'.TTP'.
- ♪③Willmanz.B.denFile'test.s'assemblieren,könntederAufruf
- folgendermaßenaussehen:
-
- @astestprg
-
- Eswirddabeiangenommen,daßdieBatchdatei'as'heißt.DerErgebnis⑨
- filewürdehier'test.prg'heißen.
-
-
- ë7 Variablen
- Ç
- DieletzteSteuermöglichkeiteinesBatchfileswirddurchdieEinführung
- derbereitskurzangesprochenenVariablengeboten.
- DerBenutzeristinderLage,Variablenzudefinierenundkannmit
- dieseneinfacheRechnungendurchführen,Schleifenaufbauenoderdurch
- SprunganweisungenbestimmteAbläufevonBatchdateienerzeugen.
- Mansiehtvielleichthierschon,daßdieVariableninderHauptsache
- zumeinfacherenArbeitenmitBatchdateienbeitragensollen.Vieleder
- hieraufgeführtenKommandossindnurinsolchenDateiensinnvollund
- zulässig!
-
- êDieBefehleimeinzelnen('|'bedeutet"entwederoder"):
- Ç
- ♪②ê->let<var><zahl|varvalue>
- ÇBelegenvon'var'mitdemWert'zahl'oder'value'
- ♪⑤BEISPIEL:
-
- letindex111
-
- DieVariable'index'wirdmit111belegt.
-
- letindex2index
- ♪②
- DieVariable'index2'wirdmitdemWertderVariablen'index'belegt.
-
- ♪⑤ê->if<varA>=<varB|zahl><label>
- ->if<varA><><varB|zahl><label>
- ->if<varA>><varB|zahl><label>
- ->if<varA><<varB|zahl><label>
- ÇDamitkanninBatchfileseinfröhlichesHin-undHergespringeveran⑨
- staltetwerden.DieBedeutungwirdwohldurchBeispieleameinfachsten
- vermittelt:
- ♪⑤BEISPIEL:
-
- ifindex=22marke1
-
- WenndieVariable'index'denWert22hat,sollzurMarke'marke1'
- gesprungenwerden.
-
- ♪③ifparameter<>indexmarkex
-
- WenndieVariable'parameter'ungleichderVariablen'index'ist,soll
- zurMarke'markex'gesprungenwerden.
-
- ♪³ê->--<variable(n)>
- ÇDekrementiereneinerodermehrererParameterumeins.
- ♪⑤BEISPIEL:
-
- --indexjuhu
-
- DiebeidenVariablen'index'und'juhu'werdenumeinserniedrigt.
-
- ♪②ê->++<variable(n)>
- ÇAnalogzuü--Ç,nurdaßdiesmaleinsdazuaddiertwird.
-
- ♪②ê->-=<varA><varB|zahl>
- ÇErniedrigenvon'varA'um'varB'oder'zahl'oderandersausgedrückt:
-
- varA:=varA-varB
- varA:=varA-zahl
-
- 'varB'kannübrigensdiegleicheVariablewie'varA'sein.Indiesem
- Fallewürdedasbedeuten,daß'varA'nachderOperationdenWertNull
- hat.
- ♪⑤BEISPIEL:
-
- -=index12
-
- VonderVariablen'index'wird12abgezogen.
-
- ♪③-=indexjuhu
-
- VonderVariablen'index'wirdderWertdesParameters'juhu'abgezo⑨
- gen.
-
- ♪②ê->+=<varA><varB|zahl>
- ÇAnalogzuü-=Ç,nurdaßdiesmaleineAdditionstattfindet.
-
- ♪②ê->*=<varA><varB|zahl>
- ÇAnalogzuü-=Ç,nurdaßdiesmaleineMultiplikationstattfindet.
-
- ♪②ê->/=<varA><varB|zahl>
- ÇAnalogzuü-=Ç,nurdaßdiesmaleineDivisionstattfindet.
-
- ♪②ê->2*<variable(n)>
- ÇVerdoppelnvonVariablenwerten.
- ♪√ÇBEISPIEL:
-
- 2*indexjuhu
-
- 'index'und'juhu'habenhierihreWerteverdoppelt.
-
- ♪②ê->2/<variable(n)>
- ÇHalbierenvonVariablenwerten.
- DadieVariablenvomTypIntegersind,werdenungeradeVariablen
- natürlichnichtdenkorrektenWerterhalten,11/2würdeimWert5
- resultierenundnichtin5.5!
- ♪⑤BEISPIEL:
-
- 2/index
-
- Hat'index'vorAusführungdesKommandos222enthalten,stehtdanach
- 111inderVariablen.
-
- ♪②ê->print<variable(n)>
- ÇAusgabederVariablenwerteaufdemBildschirm.
- ♪⑤BEISPIEL:
-
- printindexjuhu
-
- HierwerdendieInhaltevon'index'und'juhu'ausgegeben.
-
- ♪②ê->clear
- ÇAlleVariablenwertewerdenaufNullgesetzt,d.h.abernicht,daßdie
- Variablenlisteentferntwird,dafürgibtesdasfolgendeKommando:
-
- ♪②ê->erase
- ÇDieVariablenlistewirdentfernt.
-
- ♪②ê->vardump
- ÇAllevorhandenenVariablenwerdenmitihrenWertenaufdenBildschirm
- ausgegeben.DieserBefehlverschafftdemBenutzerimmereinenÜber⑨
- blick,welcheVariablenexistieren,wiegroßihreAnzahlist,mit
- welchenWertensiegeradebelegtsindundwosiesichinder
- Variablenlistebefinden.
-
-
- ♪③ê7.1 AllgemeineszudenVariablen
- Ç
- AlleVariablensindvomTypLonginteger(32Bits).
- NeueVariablenkönnennichtnurdurchdenületÇ-Befehleingeführtwerden.
- JederBezugaufeineVariable,dienochnichtexistiert,erzeugteinen
- ÇVariableneintragundsetztdenaktuellenVariablenwertaufNull!
-
- DieVariablensindineinerPointerliste,diedenjeweiligenVariablen⑨
- namenundWertenthält,organisiert.
-
-
- ♪③ê7.2 Beispiel
- Ç
- AneinemBeispielsollgezeigtwerden,daßmitHilfederVariablen
- nichtnurZählschleifeninBatchfilesaufgebautwerdenkönnen.
-
- DerfolgendeBatchfiledientzurCompilierung,LinkungundCodeverbes⑨
- serungdereinzelnenSourcefiles,ausdenenderKommandointerpreter
- besteht.
- DieSourcefilesheißenimeinzelnen'COMMAND.C','COM.C'und'EDI.C'.
- DieBatchdateisollnuninderLagesein,jedeneinzelnendieserFiles
- zucompilierenoderdenObjektcodezuverbessern.Zusätzlichmußdie
- Möglichkeitgegebensein,dieentsprechendenObjektfileszusammenlinken
- zukönnen,sodaßêcommand.prgÇalsEndproduktentsteht.
- JededieserAnforderungenmußüberParametereingabeandieDatei
- einzelnerfülltsein.
- ♪③DasEingabeformatsollfolgendermaßenaussehen:
-
- @cc<file>[aktion]
-
- 'cc'repräsentiertdabeidieBatchdatei.<file>isteinerderoben
- genanntenFiles(ohneExtension!).[aktion]steuertdasVerhaltendes
- Batchfiles.WirddieserParameterweggelassen,sollderangegebeneFile
- compiliertwerden.DarananschließendeineCode-Verbesserungdurchge⑨
- führtwerdenundzumSchlußdasganzezusammengelinktwerden.
- Wirdfür[aktion]'lc'oder'cl'eingegebenwird,nurderCompiler
- gestartetunddasganzezusammengelinkt.
- BeiEingabevon'il'oder'li'wirdeineCode-Verbesserungdurchgeführt
- unddannderLinkvorganggestartet.
- 'l'resultiertineinemLinkvorgang.
- 'c'startetnurdenCompiler.
- 'i'führteineCodeverbesserungaus.
-
- ♪⑤MöchtemandenFile'COMMAND.C'compilierenundmitdenanderenFiles
- zusammenlinken,müßtealso
-
- @cccommandlc
-
- eingegebenwerden.
- ê
- ♪∞ê7.2.1 DerFileîcc
- Ç
- ü ;
- ;BatchfilezurCompilierungeinesC-Filesvoncommand.prg
- ;
- notext ;keineKommandoausgabeaufSchirm
- cls
- ;
- ;Steuervariable
- ;
- let$10 ;allesausführen
- letlc4 ;compilierenundlinken
- letcl4 ;-"-
- letl1 ;linken
- letc2 ;compilieren
- leti6 ;Codeverbessern
- letil5 ;verbessernundlinken
- letli5 ;-"-
- if$1=1linken
- if$1>4improve
- mmcc.ttp$0.c ;Compilerabteilung
- ?status#0exit ;imFehlerfall
- if$1=2exit ;nurCompilerlauf
- if$1=4linken
- lblimprove ;Improve-Abteilung
- mmimp.ttp$0.o
- ?status#0exit ;Fehleraufgetreten
- if$1=6exit
- lbllinken ;Linkerabteilung
- mmlink.ttpcommand.ocom.oedi.o-Ocommand.prg
- lblexit
- Ç
- Ichglaube,damitisteinesinnvolleVerwendungfürVariablendeutlich
- geworden.
- Esistrelativeinfach,diesenFileaneigeneBedürfnisseanzupassen.
- DieVorgehensweisedürftekeinegroßenVerständnisproblemeaufwerfen.
-
-
- ë8 EDI
- Ç
- EDIisteinzeilenorientierter(Primitiv-)Editor.Ersollzumschnel⑨
- lenModifizierenvonKleinigkeiteninBatchfileso.ä.dienen.Zum
- SchreibenvonProgrammenoderzumBetreibenvonTextverarbeitungsollte
- maneinenanderenEditorverwenden(z.B.TEMPUS,EMACSu.s.w.).
- DerVorteildieseseingebautenProgrammteilsliegtinderschnellen
- Verfügbarkeit;Ladezeiten,wiesiefürdieVerwendungeinesexternen
- Editorsbenötigtwerden,entstehennicht.
- DerAufruferfolgtmit"edi<filename>".
- JedeeingeleseneZeiledarfhöchstensê76ÇZeichenlangsein!Kommen
- längereZeilenvor,erfolgteinStutzenderZeile(êohneWarnung!Ç).
- TabulatorzeichenwerdeninBlanksumgewandelt(darankannmanerkennen,
- wieeinfachderEditorist)!
- BeiAngabeeinesnichtexistentenFiles,wirddieserbeiVerlassenvon
- EDI(via's')erzeugt.EswirdkeineWarnungausgegeben,daßeine
- nichtvorhandeneDateiangegebenwordenist!
-
-
- ♪④ê8.1 DieKommandosvonEDI
- Ç
- EsgiltjeweilsderindieHochkommaseingeschlosseneBuchstabe,die
- üRETURNÇ-TastewirdzumAbschließenderEingabenichtbenutzt!
-
-
- ê'ëeê'(dit)EditiereneinerZeile
- ÇNachEingabevon'e'wirdeineZeilennummerangefordert.Daseigent⑨
- licheEditierengehtgenauwiebeiderEingabevonKommandos,alsomit
- denCursortasteu.s.w.SolleneingegebeneÄnderungennichtübernommen
- werden,kannmitü^ZÇeinAbbruchdesKommandosdurchgeführtwerden.
-
- ♪②ê'ëlê'(ist)AuflistendeseingelesenenFiles
- ÇEswirdnachEingabevon'l'dergewünschteZeilenbereichangefordert.
- Wirdbei'START:'einfachnurRETURNgedrückt,erfolgteinkomplettes
- AuflistendesFiles.
- EinvorzeitigesAbbrechendesListvorgangsistmitü^ZÇmöglich.
- üF1ÇunterbrichtdieAusgabe,mitüF1Çwirdwiederfortgefahren.
-
- ♪②ê'ëpê'(rint)Printerausgabe
- ÇDeranalogeBefehlzu'list'.DieAusgabeerfolgtallerdingsaufden
- Drucker.
- DieDruckerinformationenundEinstellungendesülpÇ-Kommandoswerden
- ênichtÇberücksichtigt!EshandeltsichwirklichnurumeineAusgabeum⑨
- leitungdes'list'-Befehls.
-
- ♪³ê'ëfê'(ind)Stringsuche
- ÇSuchtnacheinembestimmtenStringinnerhalbvonZeilen.JedeZeile,in
- derdereinzugebendeStringvorkommt,wirdausgegeben.
-
- ♪②ê'ërê'(eplace)Stringersetzung
- ÇEsmußdabeiangegebenwerden,obvordemErsetzungsvorgangeine
- Sicherheitsabfrageerfolgensollodernicht.
-
- ♪②ê'ëdê'(elete)Zeilenlöschen
- ÇEswirdderzulöschendeBereichangefordert.
-
- ♪②ê'ëiê'(nsert)neueZeileneinfügen
- ÇEswirddieNummerderZeileangefordert,vorderdieneuenZeilen
- eingefügtwerdensollen.AbbruchdiesesModusmitü^ZÇ.
-
- ♪②ê'ëaê'(ppend)Zeilenanfügen
- ÇAnfügenvonneuenZeilenandasFileende.Abbruchwieimmermitü^ZÇ.
-
- ♪②ê'ënê'(ew)Gesamtlöschung
- ÇLöschtalleZeilen.EsfindetallerdingseineSicherheitsabfragestatt.
-
- ♪②ê'ësê'(ave)Abspeichern
- ÇAbspeicherndesFilesundverlassenvonEDI.
-
- ♪②ê(e)'ëxê'(it)Beenden
- ÇVerlassenvonEDIêohneÇabspeichern.
-
- ♪②ê'ëhê'(elp)Hilfe
- ÇAuflistendervorhandenenBefehlemiteinerkurzenBeschreibungsowie
- AngabedesaktuellenFiles.
-
-
- ë9 Fehlermeldungen
- Ç
- DerInterpretergibtzahlreicheFehlermeldungenaus.Diesesindhier
- miteinerkurzenBeschreibungzusammengefaßt.Mandarfallerdingsnicht
- erwarten,daßêcommand.prgÇKorrekturvorschlägemacht.
-
- ♪③«missingargument(s)»
- Fehlernr.:1
- EsgibthaltBefehle,dieerwarteneinfacheinArgumentoderwennsie
- ganzunverschämtsind,gleichmehrere.
-
- ♪③«directoryisn'tempty»
- Fehlernr.:2
- Hierwurdeversucht,einnichtleeresVerzeichniszulöschen.
-
- ♪③«can'tdeletedirectory»
- Fehlernr.:3
- MansolltenurOrdnerentfernen,dieesauchwirklichgibt.
-
- ♪③«wrongcommandsyntaxorargument»
- Fehlernr.:4
- KannbeiderZahlenkonvertierungauftauchenoderwennBefehlemit
- unpassendenArgumentenversorgtwerden.
-
- ♪②«printernotconnected»
- Fehlernr.:5
- EntwederPrinteronlinestellenoderdasDingeinfachmaleinschalten.
-
- ♪②«can'topenfile»
- Fehlernr.:6
- Passiert,wenneinFilenichtgefundenwerdenkann.
-
- ♪③«can'tdeletefile»
- Fehlernr.:7
- Kommtvor,wennürmÇesnichtschaffteinenFilezulöschen.Zumeinen
- passiertdies,wennesdenFilenichtgibt,zumanderenkannderFile
- auchvorLöschengeschütztsein.
-
- ♪②«commandnotfound»
- Fehlernr.:8
- KanneineEingabenunüberhauptnichtverarbeitetwerden,kommtdiese
- Meldung.
-
- ♪③«toomanyarguments»
- Fehlernr.:9
- MancheBefehlewollenüberhauptkeinArgument,anderenureine
- ÇbestimmteAnzahl.BeiÜberfütterungstößtmandannaufdieseMeldung.
-
- ♪②«argumentoutofrange»
- Fehlernr.:10
- Wirdausgegeben,wennbeimütimeÇ-Kommandobzw.beimüdateÇ-Befehlein
- fehlerhaftesArgumentangegebenwordenist.
-
- ♪②«toomuchbatch-files»
- Fehlernr.:11
- EsdürfenmaximaldreiBatchdateiengeöffnetsein.
-
- ♪②«useonlyinbatch-files»
- Fehlernr.:12
- EsgibtKommandosdienurdortSinnhaben(z.B.ürestartÇ).
-
- ♪②«labelnotfound»
- Fehlernr.:13
- EineMarkekonntenichtgefundenwerden.
-
- ♪②«can'tcreatefile»
- Fehlernr.:14
- Eswar,auswasfürGründenauchimmer,nichtmöglich,einenFilezu
- erstellen.
-
- ♪②«wrongdirectory»
- Fehlernr.:16
- KommtbeimWechselineinennichtvorhandenenOrdnervor.
-
- ♪②«don'tuse'*'or'?'»
- Fehlernr.:17
- KommtbeieinigenBefehlenvor,diesichnuraufEinzelfilesanwenden
- lassen(z.B.ühideÇ).
-
- ♪②«can'texecute'.acc'-files»
- Fehlernr.:18
- DerInterpreteristnichtinderLage,Deskaccessoriesauszuführen.
-
- ♪②«directoryexists»
- Fehlernr.:19
- EinOrdnerkannnichtzweimalgebasteltwerden.
-
- ♪②«can'tcreatedirectory»
- Fehlernr.:20
- AusirgendwelchenGründenkanndieKreierungeinesOrdnersnicht
- vorgenommenwerden(z.B.Schreibschutz).
-
- ♪³Ç«'!'-argumentnotinrange»
- Fehlernr.:21
- EswurdeversuchtaufeinenaltenBefehlzuzugreifen,dernichtinder
- History-Listeist.
-
- ♪②«relationunknown»
- Fehlernr.:22
- ProblemchenbeidenüifÇ-BedingungeninderVariablenabteilung.
-
- ♪②«notenoughdisk-space»
- Fehlernr.:23
- Bedeutungdürfteklarsein.
-
- ♪②«filenotopen»
- Fehlernr.:24
- DasüwriteÇ-Kommandowurdeangewandt,obwohlgeradekeinFilemit
- üopenÇ/üappendÇgeöffnetwordenist.
- DurchdasWegfallendieserBefehle,gibtesdieseMeldungnichtmehr!
-
- ♪②«can'tchangemode»
- Fehlernr.:25
- FindetbeimüchmodÇ-BefehlVerwendung.
-
-
- DieFehlernummer15existiertnichtmehr,deshalbdieLücke!
-
- EsgibteinigeFehler,diezumsofortigenProgrammstopdesInterpreters
- führen.Sollteesnichtmehrmöglichsein,RAM-PlatzfürEinträge,wie
- z.B.dieHistory-ListeoderALIAS,zubeschaffen,tritteinsolcher
- Abbruchauf.
-
- DasProgrammwirdübrigensgarnichterstgestartet,wennderReservie⑨
- rungsversuchdesInterpreters,dersich32kRAMbesorgenwill,fehl⑨
- schlägt.MansolltedannseineRAM-Disketwaskleinermachenoder
- einigeAccessoriesentfernen.
-
- IsteinFehleraufgetretenenthältüstatusÇdieFehlernummer.
-
-
- ë10 DieAusgabeumleitung
- Ç
- EinigeBefehleerlaubenes,dieAusgabeineinenFileumzuleiten.Dazu
- mußdirektandasKommando'|[file]'mitangegebenwerden.
- BEISPIEL:
-
- tree|dir.txt
-
- DasDirectoryverzeichniswirdindenFile'dir.txt'geschrieben.
-
- FolgendeKommandossindmitderUmleitungausgestattet:
-
- -tree -time -print -cp -wc
- -find -date -status -alias -pwd
- -od -cat -flags -df
- -dir -more -version-device
- -ls -echo -cmp -head
- -string-vardump-help
-
- WirddieUmleitungbeiKommandosangewandt,diedieseMöglichkeitnicht
- bieten,wirdeinleererAusgabefileerzeugt,sonstpassiertnichts!
- Unangenehmwirdesallerdingswenn,z.B.mitüodÇ,einAusgabefilevom
- Ausgabefilegemachtwerdensoll.DerFilegehtdannnämlichüverlorenÇ!
- BeiAngabevon'|[file]'wirdeineneueDateierstellt,gibtman
- hingegen'||[file]'an,erfolgtdieUmleitungandasEndeeinerbereits
- bestehendenDatei.Existiertdieseallerdingsnochnicht,wirdeine
- neuekreiert(Funktiondannwieein'|[file]').
- EskannübrigensauchaufGerätschaftenausgegebenwerden.'dir|PRT:'
- sendetz.B.seineAusgabezumDruckerport(Centronics-Schnittstelle).
- ü
- Ç üPRT:Ç UmleitungzumDrucker
- üCON:Ç UmleitungzurKonsole(entsprichtkeinerAngabe)
- üAUX:Ç zurRS-232Schnittstelle(nichtgetestet!)
- ü MIDIÇ (nichtgetestet)
-
- ë11 AllgemeinesBlablazumSchluß
- Ç
- ê11.1 Lieferumfang
- Ç
- -COMMAND.PRG
- 9 [.................................................]011
- dereigentlicheInterpreter.
-
- 9[.......................................................]011
- -COMMAND.TXT
- 9 [.................................................]011
- dievorliegendeBeschreibung.
-
- 9[....................................................]011
- -COMMAND.HLP
- 9 [.................................................]011
- wirdfürdenühelpÇ-Befehlgebraucht.
-
- 9[...................................................]011
- -TEST
- 9 [.................................................]011
- einBatchfile,derzurFunktionsüberprüfungdermeistenKomman⑨
- dosdienensoll.MankannanhanddieserDateiauchdie
- FunktionsweisederdiversenBefehlerechtguterkennen.
-
- 9[...................................................]011
- -GETARG.PRG
- 9 [.................................................]011
- einkleinesProgramm,daszurErmittlungderParameterdienen
- soll,dieaneinProgrammz.B.durcheineShellübergeben
- werden.DamitlassensichverschiedeneAnwendungen,inder
- HauptsacheallerdingsCompilerundLinker,andenInterpreter
- anpassen.
- GETARG.PRGmußnurindenentsprechendenProgrammnamenumge⑨
- nanntwerden,danneinfachdennormalenFunktionsablaufstarten
- undschonkannmanerkennen,welcheParameterübergebenwerden.
-
- 9[...................................................]011
- -CC
- 9 [.................................................]011
- einBeispielbatchfile,derzurCompilierungundLinkungvonC-
- FilesunterVerwendungdesMEGAMAX-C-Compilersbenutztwerden
- kann.TritteinFehlerauf,wirdautomatischeinEditor
- aufgerufen,diesermußvomBenutzerdefiniertwerden(siehe
- Batchdatei).
-
- 9[...................................................]011
- -AS
- 9 [.................................................]011
- dieserBatchfileentsprichtdemBeispiel3,daßichweiteroben
- gegebenhabe.DamitlassensichAssemblerfilesdurchden
- AssemblerundLinkerausdemEntwicklungspaketzulauffähigen
- Programmenübersetzen.
-
- 9[........................................................]011
- ê
-
- ♪③11.2 ZurProgrammierung
- Ç
- ProgrammiertwurdedasganzeDingmitdemMEGAMAX-C-Compiler(V1.1).
- ÇEineganzeMengevondemCodeistallerdingsinAssemblergeschrieben
- (InlineassemblervomMEGAMAX).
- AlsProgrammeditorwurde,inderHauptsache,derMicroEMACSbenutzt.
- Deristzwarnichtgeradeberühmt,wasGeschwindigkeitsrekordeangeht,
- abersonstziemlichmächtig(vorallemverarbeiteteraufeinerecht
- vernünftigeArtundWeiseTabulatoren).
- InzwischenbinichallerdingswegenderGrößederSourcefilesauf
- TEMPUSumgestiegen,vielleichtkommtjasogarmaleineVersion,diees
- aucherlaubt,dieTabulatortastezuverwenden.
-
- ImLaufederZeitsindimmerwiederNeuerungenundVerbesserungen
- dazugekommen.LeiderhabensichvieleVerbesserungeninderFolgeeher
- alsVerschlimmbesserungenentpuppt.UmdiesemUmstandRechnungzu
- tragen,habeichdenFileêtestÇgebastelt,derdiemeistenKommandosauf
- ihreFunktionsfähigkeithinüberprüft.
-
- BeiderArbeitmitdemProgrammkannesvorkommen,daßmanaufFehler
- stößt.EineganzeMengesindseitderVersion1.04entferntworden,
- aberichfürchte,daßesdochnocheinigegibt.EinpaarderFehler
- liegenimBetriebssystem,andenenkannichleidernichtvieländern.
-
- ObesmitdemneuenTOSProblemegebenwird,bleibtnochabzuwarten.
- TheoretischdürftedieseigentlichnichtderFallsein,daichnur
- offizielleRoutinenbzw.Systemaufrufebenutzthabe,eigentlichmüßten
- beieinerfehlerfreienneuenTOS-VersionaucheinigeProblemedes
- Interpretersverschwinden.
- WennmanaberdieGeschwindigkeitsieht,mitderATARIdieneueTOS-
- VersionderÖffentlichkeitzugänglichmacht,braucheichmirhierwohl
- wedergraueHaarewachsenzulassennochsolltemangroßartige
- Hoffnungenhegen.
- DaesscheinbarkeineoffiziellenAngabendarübergibt,welcheRegister
- beiGEMDOS/XBIOS/BIOS-Aufrufenverändertwerden,habeichdort,wo
- solcheAufrufeimProgrammvorkommen,dieRegisterD2-D7undA2-A6
- gerettet.InderHoffnung,daßmirdabeikeinFehlerunterlaufenist...
- DaMEGAMAXfürFunktionenwiez.B.ügetc()Çoderüfopen()Çwohlauchauf
- dieseAufrufeaufbaut,geheichmaldavonaus,daßdieEntwickler
- diesesCompilersdienotwendigenRegisterretten.
-
- NachderAbarbeitungvonexternenProgrammenwerdennuneinigeZeiger
- wiederrestauriert(z.B.fürdieMausroutinen).Damithabensicheinige
- Probleme,diedurchdieZeigerverbiegerei,ausgelöstdurchirgendwelche
- Programme,entstandensind,inLuftaufgelöst.
- TrotzdemgibtesimmernochProgramme,diesichgarnichtmitdem
- Interpretervertragen;bisjetztistmirderentscheidendeGedanken⑨
- blitzzurBeseitigungdieserRestriktionnochnichtgekommen.
- SauberprogrammierteAnwendungenlaufenaberklaglos.
- Ç
- AndemProgrammerhebeichvonmeinerSeitekeinerleiCopyrightsoder
- ähnlicheAnsprüche,eskannvonjedembeliebiggenutztundweitergege⑨
- benwerden.
- Natürlichwäreesrechtnett,wennbeieinersolchenWeitergabe
- wirklichalleFilesdabeisind,dasProgrammistz.B.ohneausreichende
- Beschreibungnichtallzuvielwert.
-
- ♪②InteressentenamSourcecodekönnendiesengegenEinsendungeiner
- LeerdisketteundeinesfrankiertenRückumschlagsbekommen.
- DaichandemProgrammimmernochÄnderungendurchführe(neueBefehle
- einbauen,Fehlerentfernen...),enthältdieseSourcecodediskettedann
- auchdiejeweilsneuesteVersion,sowieeinigeUtility-Programme.
- DieseSourcecode-Kopiekostetnatürlichnichts(außerdembereits
- erwähntenPorto,derVerpackungundderDiskette);essolltenfürmich
- einfach,außerderZeit,keineKostenentstehen.
-
- Anregungen,FragenundvorallemMeldungenvonaufgetretenenProgramm⑨
- fehlernbitteichanmichzuschicken:
-
- JoachimWolf
- Heubergstr.3
- 7014Kornwestheim
- Tel.:07154/7979
-
-
- ü12 ANHANGAÇ(Befehlszusammenfassung)
-
- 9[........................................................]011
- ! ZugriffaufaltesKommando
- # Dezimalwertumrechnen
- $ Hexwertumrechnen
- *= Variablenmultiplikation
- ++ Variableinkrementieren
- += Variablenaddition
- -- Variabledekrementieren
- -= Variablensubtraktion
- /= Variablendivision
- 2* Variableverdoppeln
- 2/ Variableteilen
- ; Kommantarzeile
- < Statusabbruchbedingung
- <> Statusabbruchbedingung
- == Statusabbruchbedingung
- > Statusabbruchbedingung
- ?arg SprungzuLabel,wennArgumentexistiert
- ?batch zeigtAnzahloffenerBatchdateien
- ?ok Virusüberprüfung
- ?status# status-Sprungbedingung
- ?status< status-Sprungbedingung
- ?status= status-Sprungbedingung
- ?status> status-Sprungbedingung
- ?stop bedingtBatchfilestoppen
- @ Batchfileaufrufen
- \ Oktalwertumrechnen
- alias Belegungenausgeben
- batch Batchfileaufrufen
- bell einmalklingeln
- break AbbruchderBatchbearbeitung
- cat File(s)ausgeben
- cd Ordnerwechseln
- chmod Fileattributeändern
- clear Variablenwertelöschen
- cleararg löschtvorhandenü$Ç-Argumente
- cls Bildschirmlöschen
- cmp Filevergleich
- compress Filekomprimierung
- cp File(s)kopieren
- crsoff Cursorausschalten
- crson Cursoreinschalten
- crypt Fileverschlüsselung
- date Datumausgeben/setzen
- defkey Funktionstastebelegen
- Çdelalias Alias-Eintragentfernen
- device AusgabederansprechbarenMassenspeicher
- df SpeicherplatzaufDiskette
- dir File(s)auflisten
- echo Stringausgeben
- edi Editoraufrufen
- erase Variablenlisteentfernen
- errorbreak BatchabbruchimFehlerfall
- exist TestobFilevorhanden
- exit Interpreterverlassen
- expand komprimierteFilesexpandieren
- find File(s)finden
- flags Flagausgabe
- free freierRAM-Bereich
- getalias Belegungeneinlesen
- goto SprungzuMarke
- h verfügbarealteEingabenauflisten
- head dieerstenzehnZeileneinesFilesausgeben
- help Hilfefunktion
- hide Fileverstecken
- history verfügbarealteEingabenauflisten
- if...< Variablensprung
- if...<> Variablensprung
- if...= Variablensprung
- if...> Variablensprung
- ifarg Sprung,wennzweiStringsgleich
- inverse Bildschirmdarstellungumschalten
- keyboard AusgabeTastenbedeutungen
- keys AusgabederFunktionstastenbelegungen
- lbl Markesetzen
- let Variablebelegen
- lock Rechnersperren
- lp File(s)ausdrucken
- lpmargin linkerRandbeiListings
- lppage AnzahlderSeiteproSeitebeiListings
- ls File(s)auflisten
- merge Filesverbinden
- mkdir neuenOrdner
- more File(s)ausgeben
- mouseoff Mauszeigerausschalten
- mouseon Mauszeigereinschalten
- mv Fileumbenennen
- newalias Neubelegungeinführen
- notext Batchkommandosnichtausgeben
- numbers beiListingsZeilennummerausgebenein/aus
- od Filedump
- Çoldy wennFile1älteristalsFile2,danngehezuLabel
- page ListingsmitSeitennummernversehen
- path AngabeeinesSuchpfades
- pchange beiüpathÇ-BefehlOrdnerwechselein/aus
- print Variablenwertausgeben
- pwd AusgabedesaktuellenPfades
- reset Rechnerzurücksetzen
- resetlp Printerinitialisierung
- restart anBatchfileanfangspringen
- rm File(s)löschen
- rmdir Ordnerlöschen
- save File(s)nurlesbar
- savealias Belegungenabspeichern
- setarg setzenvonü$Ç-Argumenten
- savehist êhistory.datÇabspeichernein/aus
- setlp Printerinitialisierung
- settab Tabulatorsetzen
- shiftarg verschiebenvonü$Ç-Argumenten
- size0 Test,obFilenichtvorhanden
- slash '/'->'\'ein/aus
- srhist Historyein/aus
- srtab automatischeTabulatorfunktionaus-/einschalten
- srtitle Titelseitenausgabeein/aus
- status Statusausgeben
- stop Batchfilestoppen
- string Stringsuche
- sz AusgabeBetaein/aus
- text Batchkommandosausgeben
- time Zeitausgeben/setzen
- tree Ordnerstrukturauflisten
- unsave File(s)les-&schreibbar
- vardump Variableausgeben
- version Erstellungsdatumausgeben
- wait aufTastendruckwarten
- wc Zeilen&Ziffernzählen
-
- Ichhoffe,daßichindieseListeallevorhandenenBefehleaufgenommen
- habe.
- SiesolllediglichalsGedankenstützedienen!DievollständigeSyntax
- zueinembestimmtenBefehlistdenvorangehendenAusführungenzu
- entnehmen.
- ImAnhangfindetsicheinIndex,dereinschnellesAuffindender
- gesuchtenKommandosermöglicht.
-
-
- ü13 ANHANGÇüBÇ(üoldyÇ-Beispiele)
-
- ♪3ê13.1 Beispiel1fürdieVerwendungdesëoldyê-Befehls
- Ç
- ü letkontrolle3
- size0command.ocompiliere1
- oldycommand.ocommand.ccompiliere1
- lblcom
- size0com.ocompiliere2
- oldycom.ocom.ccompiliere2
- lbledi
- size0edi.ocompiliere3
- oldyedi.oedi.ccompiliere3
- lbllinke
- ifkontrolle=3ende
- linkcommand.ocom.oedi.o-Ocommand.prg
- lblende
- stop
- lblcompiliere1
- cccommand.c
- <>0
- impcommand.o
- --kontrolle
- gotocom
- lblcompiliere2
- cccom.c
- <>0
- impcom.o
- --kontrolle
- gotoedi
- lblcompiliere3
- ccedi.c
- <>0
- impedi.o
- --kontrolle
- gotolinke
- Ç
- DasBeispielbeziehtsichwiederaufdiedreiTeile,ausdenender
- Kommandointerpreterbesteht.
- DerBatchfileüberprüftdasVorhandenseinderObjektfilesbzw.wenn
- diesevorhandensind,ihrAlter.Sindsienichtvorhandenoderälter
- alsderzugehörigeSourcecode,wirdeinCompilerdurchganggestartet.
-
- DaszweiteBeispielsollzeigen,daßbeiVerwendungandererKommandos
- einegewissePlatzersparniszuerzielenist:
-
- ♪∩ê13.2 ëoldyê,dieZweite
- Ç
- ü setargcommandcomedi ;dieQuelldateien
- lblloop ;Compilerabteilung
- size0$0.cweiter ;Sourcefilefehlt
- size0$0.ocompiliere ;Objektfilefehlt
- oldy $0.o$0.ccompiliere ;Alterüberprüfen
- gotoweiter ;nächstenFile
- lblcompiliere ;eigentlicheCompilierung
- cc$0.c
- <>0 ;rauswennFehler
- imp$0.o ;Codeimprover
- lblweiter
- shiftarg ;nächsteDatei
- ?arg0loop ;wennnocheinedaist
- ;sonstEnde
- linkcommand.ocom.oedi.o-Ocommand.prg;dasErgebnis
- Ç
-
- Ichhoffe,dieseBeispieleverdeutlichendieMöglichkeiten,dieüoldyÇ
- bietet.
- MankanndamitzwarkeineSuper-MAKE-Umgebungerstellen,aberKleinvieh
- machtauchMistundaufgrundderEinfachheitinderBenutzung,sollte
- jeder,deröftersProgrammeerstellt,derenSourcecodemehrereDateien
- umfaßt,inderLagesein,einennichtunerheblichenNutzenausdem
- Kommandoziehenzukönnen.
-
-
- ë14 Index
- Ç
- ! ................... 31f,32ff,33ff,53,58
- !! .................. 33f
- # ................... 28
- $ ................... 28
- *= .................. 45,58
- ++ .................. 45,58
- += .................. 45,58
- -- .................. 45f,58,61f
- -= .................. 45ff,58
- / ................... 11,21,25f,26,28,60
- /= .................. 45,58
- 2* .................. 45,46,58
- 2/ .................. 46f,58
- < ................... 40,59
- <> .................. 39,41f,44f,59,61f,62
- = ................... 59
- == .................. 40,43,58
- > ................... 40,59
- ?arg ................ 36f,39,58,62
- ?batch .............. 36,58
- ?ok ................. 7,58
- ?status ............. 40ff,42f,48f,58ff
- ?stop ............... 36,58
- @ ................... 35f,41,43,47f,58
- ALIAS ............... 53
- Alias ............... 29f,30f,59
- Ausgabeumleitung .... 27
- BACKSPACE ........... 4
- Batch ............... 3,7,14,29,30,34ff,35ff,36ff,37ff,38ff,39ff,40ff,
- 41ff,42ff,43f,44ff,47ff,48,49,52,55f,58ff,59f,
- 60f,61
- Bildschirm .......... 7,9,14,17f,19f,20,33,36,46f,58,59
- CONTROL ............. 4f
- CONTROL-D ........... 4
- CONTROL-X ........... 4
- CURSOR-DOWN ......... 32,33
- CURSOR-UP ........... 32,33
- DELETE .............. 4
- Directory ........... 8,11,19,22,24,54
- Drucker ............. 17f,18,23f,24f,25f,26f,49f,54f
- EMACS ............... 49,56
- ESC ................. 4f
- Fileattribut ........ 8,13,58
- Funktionstaste ...... 7,13f,17,58,59
- ÇHELP ................ 16
- History ............. 3f,25f,31f,32f,33,34,53f,60
- INSERT .............. 4
- Kommandointerpreter . 3,29,47,61
- Laufwerk ............ 5,7,8ff,9,10,11ff,13f,14,15f,19,21f,22f,23,26,
- 27f,28
- MEGAMAX-C ........... 41f,42,55f
- MS-DOS .............. 3
- Maus ................ 3,19f,20ff,56,59f
- Ordner .............. 4,5,7,8f,9f,11,13f,14,16,18ff,21,22,24f,26f,51,
- 52f,58,59,60f
- SHIFT ............... 4f,13
- TAB ................. 25f
- TEMPUS .............. 49,56
- UNIX ................ 3,31
- VMS ................. 3,32,35
- Variable ............ 38f,44ff,45ff,46ff,47ff,48,53,58ff,59ff,60f
- Verzeichnis ......... 4,5f,7f,8f,9,11ff,13,14f,15,16,18f,19,21f,23,26,
- 29,40,51
- \ ................... 8,11f,21,25f,28f,58,60
- alias ............... 29ff,30f,54,58
- append .............. 27,53
- auto.com ............ 40
- batch ............... 34,35ff,41,52f,58
- bell ................ 7,58
- break ............... 36,58
- cat ................. 7ff,19f,24,54,58
- cd .................. 7,8ff,18,19,25,27,58
- chmod ............... 8,9f,16,17,53,58
- clear ............... 46,58
- cleararg ............ 39,58
- close ............... 27
- cls ................. 9,43,48,58
- cmp ................. 9,10f,32ff,54,58
- command.hlp ......... 16
- command.prg ......... 3f,29f,35,40,41ff,47,48f,51,61,62
- compress ............ 10f,14f,58
- counter ............. 34f
- cp .................. 6,11ff,32ff,54,58
- crsoff .............. 11,58
- crson ............... 11,58
- crypt ............... 11,12f,58
- date ................ 12f,52,54,58
- defkey .............. 13f,17,58
- delalias ............ 29,59
- device .............. 13,54,59
- Çdf .................. 13,54,59
- dir ................. 4,13f,14ff,16f,18,19,54f,59
- echo ................ 14f,35ff,37f,39f,43ff,54,59
- edi ................. 48,49,59
- erase ............... 46,59
- errorbreak .......... 15,37f,59
- exist ............... 37ff,59
- exit ................ 14,48ff,59
- expand .............. 10f,14,59
- find ................ 14,15f,54,59
- flags ............... 15,20,22,23,24f,25ff,26,36,37,54,59
- free ................ 15,59
- getalias ............ 29,59
- goto ................ 37f,59,61f,62
- h ................... 33,59
- head ................ 16f,54,59
- help ................ 16f,54,55,59
- hide ................ 16f,52,59
- history ............. 33f,59
- if .................. 44ff,48ff,59ff,61
- ifarg ............... 39,59
- inquire ............. 39f
- inverse ............. 17f,59
- keyboard ............ 17,59
- keys ................ 17,59
- lbl ................. 37ff,39,42,43,48f,59,61ff,62f
- let ................. 44f,46,48ff,59,61
- lock ................ 17f,59
- lp .................. 17f,18,23f,25,49,59
- lpmargin ............ 15,18,59
- lppage .............. 15,18,59
- ls .................. 18f,54,59
- merge ............... 18f,59
- mkdir ............... 18,19,59
- more ................ 19f,24,54,59
- mouseoff ............ 19,20,59
- mouseon ............. 20f,59
- mv .................. 20f,59
- newalias ............ 30f,59
- notext .............. 15,36,43,48,59
- numbers ............. 15,20,59
- od .................. 20,21f,54f,59
- oldy ................ 38,60,61ff,62f
- open ................ 27,53
- page ................ 15,21,60
- path ................ 5,21f,22ff,60f
- Çpchange ............. 15,21,22,60
- print ............... 46f,54,60
- pwd ................. 22,54,60
- reset ............... 22,60
- resetlp ............. 15,18,23ff,24,60
- restart ............. 36,42,52,60
- rm .................. 16,23ff,41f,42,43,51,60
- rmdir ............... 24f,60
- save ................ 23,24,27,60
- savealias ........... 29,30f,60
- savehist ............ 15,24,60
- setarg .............. 39ff,60,62
- setlp ............... 15,18,24f,60
- settab .............. 15,18,24f,60
- shiftarg ............ 38,39,60,62
- size0 ............... 37f,43f,60,61f,62f
- slash ............... 15,25f,60
- srhist .............. 15,25f,60
- srtab ............... 15,25,60
- srtitle ............. 15,18,25f,60
- status .............. 38ff,39,40ff,53,54,58ff,60
- stop ................ 36f,42,43,60,61
- string .............. 25,26f,54,60
- sz .................. 15,26,60
- text ................ 15,36f,60
- time ................ 26f,52,54,60
- tree ................ 26,54f,60
- unsave .............. 23,24f,27,60
- vardump ............. 46,54,60
- version ............. 27,54,60
- wait ................ 36,42,60
- wc .................. 27,54,60
- write ............... 27,53
-
-